使用 AWS RDS 中托管的 MySQL 5.6 或 5.7,或 Docker MySQL 容器,我想创建一个权限最低的用户,例如名为
creator
,可以执行以下操作:
我希望
creator
用户无权访问其不负责创建的现有数据库。
这可以实现吗?
到目前为止,我的研究表明,这样的
creator
用户可能需要跨 MySQL 实例的全局 SELECT 和 INSERT 权限,但这似乎过多。
您可以使用存储过程和解决方法来完成此操作,它比 SP 更简单,并且可能正是您正在寻找的:
GRANT CREATE USER ON *.* TO '<user>'@'<host>';
GRANT ALL PRIVILEGES ON `<user>_%`.* TO '<user>'@'<host>' WITH GRANT OPTION;
正如您在这个答案中看到的,您需要注意几点:
aaa
,您可以创建名称为aaa_example
的数据库,如果aaa想要创建名为的数据库) bbb_example
mysql 将抛出权限被拒绝错误。考虑到这一点,您可以调整此
`<user>_%`
以最适合您的需求。