gpt4 book ai didi

MySQL DROP DATABASE 等效 w/o root 访问或 DROP 权限

转载 作者:行者123 更新时间:2023-11-29 05:00:11 25 4
gpt4 key购买 nike

我正在协调多个 PHP 开发项目。我设置了一个工作流,开发人员都使用一个 Subversion 存储库。当他们准备好在临时服务器上查看他们的应用程序时,上传 MySQL 数据库转储并创建标签。

我已经配置了一个 shell 脚本,它会自动将 PHP 代码部署到 DocumentRoot 并配置适当的权限。我现在需要编写数据库快照加载的脚本。

当我第一次配置一个新的应用程序时,我创建了一个数据库和用户帐户,如下所示:

CREATE DATABASE foodb;
GRANT ALL ON foodb.* TO user1@localhost IDENTIFIED BY 'password';

现在,当开发人员将新版本的 MySQL 转储检查到 Subversion 中时,我需要删除旧数据库并恢复新快照。我目前正在使用以下工作流程。

1.) 以 root 身份登录 MySQL

DROP DATABASE foodb;
CREATE DATABASE foodb;
GRANT ALL ON foodb.* TO user1@localhost IDENTIFIED BY 'password';

2.) 登录 MySQL "user1"

mysql -h localhost -u user1 --password="drumitFed" foodb << new-db-dump-from-subversion.sql

我想结合上面的步骤 1 和 2。我想它看起来像这样。代码不仅应该删除表,还应该删除 View 、索引和存储过程。

注意,它必须以数据库用户身份运行,而不是 super 用户,并且数据库用户没有 DROP DATABASE 或 CREATE DATABASE 权限。

mysql -h localhost -u user1 --password="password" foodb << delete-all-tables-and-views.sql
mysql -h localhost -u user1 --password="password" foodb << new-db-dump-from-subversion.sql

最佳答案

我没有时间对此进行测试,但请尝试授予用户 CREATE MySQL 范围内的权限,然后创建每个数据库的用户应该有权删除他们创建的内容,如果没有,您可以授予他们删除该数据库的权限?

关于MySQL DROP DATABASE 等效 w/o root 访问或 DROP 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1936700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com