使用AWS RDS中托管的MySQL 5.6或5.7或Docker MySQL container,我想创建一个权限最小的用户,例如名为creator
,可以执行以下操作:
如果creator
用户无权访问不负责创建的现有数据库,我更愿意。
这可以实现吗?
到目前为止,我的研究表明,这样的creator
用户可能需要跨MySQL实例的全局SELECT和INSERT权限,但这似乎过多。
答案 0 :(得分:2)
您可以使用存储过程和解决方法执行此操作,它比SP更简单,可能是您正在寻找的:
GRANT CREATE USER ON *.* TO '<user>'@'<host';
GRANT ALL PRIVILEGES ON `<user>_%`.* TO '<user>'@'<host>' WITH GRANT OPTION;
正如您在this answer中所看到的,您需要注意以下几点:
aaa
,则使用给定的链接示例,您可以创建名称为aaa_example
的数据库,如果aaa想要的话创建名为bbb_example
的数据库mysql将删除权限被拒绝错误。考虑到这一点,您可以根据自己的需要调整此`<user>_%`
。