mysql中每个用户的最大数据库数

时间:2012-06-08 13:39:22

标签: mysql

我想知道是否有办法限制用户可以在mysql中创建的数据库数量?我想授予用户创建数据库的权利,但他不应该创建无限数量的数据库。

谢谢, 格罗尔德

1 个答案:

答案 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')