我想知道是否有办法限制用户可以在mysql中创建的数据库数量?我想授予用户创建数据库的权利,但他不应该创建无限数量的数据库。
谢谢, 格罗尔德
答案 0 :(得分:0)
如果您的用户仅授予他们自己的数据库权限,您可以在允许创建他们已拥有的数据库之前检查information_schema.SCHEMA_PRIVILEGES
。但是,要实现此目的,您必须直接禁止用户CREATE DATABASE
,而是通过另一个特权数据库用户在应用程序代码中创建数据库,然后将用户的访问权限授予其新创建的数据库。
SELECT
GRANTEE,
COUNT(DISTINCT TABLE_SCHEMA) AS NUM_DBS
FROM information_schema.SCHEMA_PRIVILEGES
GROUP BY GRANTEE
如果NUM_DBS
大于您的限制,请不要为它们创建新数据库。
请注意,如果您向用户授予他们“拥有”数据库以外的数据库的权限,则需要通过
之类的内容排除这些数据库中的数据库。WHERE TABLE_SCHEMA NOT IN ('other','dbs','you','grant','access','on')