创建MySQL数据库,用户和授予权限所需的最低权限是多少?

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

>创建一个新数据库.
>创建一个新用户.
>为新数据库中的所有表授予新用户SELECT和INSERT权限.

如果创建者用户无权访问不负责创建的现有数据库,我更愿意.

这可以实现吗?

到目前为止,我的研究表明,这样的创建者用户可能需要跨MySQL实例的全局SELECT和INSERT权限,但这似乎过多.

最佳答案
您可以使用存储过程和一种比SP更简单的解决方法来执行此操作,这可能是您正在寻找的内容:

  GRANT CREATE USER ON *.* TO’< user>‘@’< host';
  在’< user> _%`.* TO’< user>‘@’< host>‘上授予所有权限WITH GRANT OPTION;

正如您在this answer中所看到的,您需要注意以下几点:

>用户只能创建以用户名“_”开头的数据库(如果您的用户名是aaa,则使用给定的链接示例,您可以创建名称为aaa_example的数据库,如果aaa想要创建名为bbb_example的数据库,则mysql将删除权限否认错误.
>他只对他创建的数据库拥有特权,但是由他创建的用户创建的数据库(如果他授予该特权).
>但他可能会管理他所拥有的数据库中的权限.

考虑到这一点,您可以将这个“< user> _%`调整为适合您的大部分需求.

转载注明原文:创建MySQL数据库,用户和授予权限所需的最低权限是多少? - 代码日志