2013-01-14 96 views
3

因此,我知道我可以爲所有表格通配數據庫。舉例來說,如果我想給予選擇對所有表的用戶匹配的數據庫,我可以:授予通配符數據庫的權限但特定表格

GRANT SELECT 
ON 'databasesprefix%'.* 
TO [email protected] IDENTIFIED BY 'testpasswd'; 

但是如果我想授予UPDATE,DELETE,INSERT,以德用戶對所有匹配的數據庫,但只有一個以下不起作用:

GRANT UPDATE, DELETE, INSERT 
ON 'databasesprefix%'.specifictable 
TO [email protected] IDENTIFIED BY 'testpasswd'; 

有沒有辦法在SQL中做到這一點?或者我將不得不從外部編寫腳本?

+0

爲什麼你有相同的表在每個數據庫?這表明一個非規範化的模式,這可能是一個糟糕的設計選擇。 – eggyal

+0

針對不同客戶的同一應用程序分離孤島。我無法控制這個設計。只是想添加具有特定權限的用戶。 – FunkyShu

回答

1

編號 在MySQL中沒有辦法做到這一點。

http://dev.mysql.com/doc/refman/5.1/en/grant.html

priv_level: 
    * 
    | *.* 
    | db_name.* 
    | db_name.tbl_name 
    | tbl_name 
    | db_name.routine_name 

RTM :)

+0

是的,閱讀手冊,但無法確定地告訴我什麼時候讀它,無論數據庫和表是否可以通配,因爲您引用的priv_level沒有提及%或_元字符通配符。感謝澄清。 – FunkyShu