2012-06-08 69 views
1

我想知道是否有辦法限制用戶可以在mysql中創建的數據庫數量?我想給用戶創建數據庫的權利,但他不應該創建無限數量的數據庫。mysql中每個用戶的最大數據庫數

感謝, 格羅爾德

+1

什麼水平這些用戶的訪問權限?你可以通過應用程序邏輯處理數據庫創建,但給用戶更少的權限? – mellamokb

回答

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') 
相關問題