gpt4 book ai didi

mysql - 创建 MySQL 数据库、用户和授予权限所需的最低权限是什么?

转载 作者:可可西里 更新时间:2023-11-01 07:07:48 26 4
gpt4 key购买 nike

使用托管在 AWS RDS 中的 MySQL 5.6 或 5.7,或 Docker MySQL container ,我想创建一个最低权限的用户,例如名为 creator,可以执行以下操作:

  • 创建一个新数据库。
  • 创建一个新用户。
  • 授予新用户对新数据库中所有表的 SELECT 和 INSERT 权限。

我希望 creator 用户无法访问它不负责创建的现有数据库。

这是可以实现的吗?

到目前为止,我的研究表明,这样的 creator 用户可能需要跨 MySQL 实例的全局 SELECT 和 INSERT 权限,但这似乎过分了。

最佳答案

您可以使用存储过程和比 SP 更简单的解决方法来执行此操作,并且可能正是您正在寻找的:
GRANT CREATE USER ON *.* TO '<user>'@'<host';
GRANT ALL PRIVILEGES ON `<user>_%`.* TO '<user>'@'<host>' WITH GRANT OPTION;
正如您在 this answer 中看到的那样你需要注意几点:

  1. 用户只能创建以他的用户名 + '_' 开头的数据库(使用给定的链接示例,如果您的用户名是 aaa 您可以创建名称为 aaa_example 的数据库,如果 aaa 想要创建一个数据库名为 bbb_example 的 mysql 将删除权限被拒绝的错误。
  2. 他将只对他创建的数据库有权限,但对他创建的用户创建的数据库没有权限(如果他授予该权限)。
  3. 然而,他可能会管理他拥有的那些数据库中的权限。

考虑到这一点,您可以调整此 `<user>_%`满足您的大部分需求。

关于mysql - 创建 MySQL 数据库、用户和授予权限所需的最低权限是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42149855/

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