2013-07-09 79 views
1

我希望我的用戶在所有數據庫上具有擴展特權,但只有一個數據庫的用戶應該只有select語句權限的情況下。phpmyadmin限制特定數據庫的權限

我試圖限制只選擇使用特定於數據庫的選項,但它沒有效果,用戶仍可以更新數據庫。我懷疑擴展權限覆蓋我的數據庫特定的選項。

我不想管理所有數據庫的數據庫特定權限,因爲我有4個用戶和100多個數據庫。

回答

1

你不能排除某些數據庫,AFAIK,但你可以 GRANT通配符。因此,如果您以不同的方式命名單個數據庫異常,請說明其餘部分是否包含單個數據庫異常的前綴,您可以使用通配符完成類似的操作。例如,如果所有數據庫的前綴都是'shared_'或'common_'或某些東西,那麼您可以授予「common_%」的所有權限,但是可以獨立控制您的一個數據庫的權限而不使用前綴。

這仍然涉及到,因爲您可能需要重命名大量數據庫,但是您只有兩個授權來管理,而不是每個數據庫一個。

0

我不認爲有一種方法可以授予「除一個之外的所有人」形式的MySQL用戶特權。 但是你可以使用MySQL查詢產生這樣的GRANT查詢列表:

SELECT CONCAT('GRANT ALL ON ',SCHEMA_NAME,' TO user_name') FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME!='exclude_database' 

,然後執行這些對每一位用戶。