mysql使用者許可權

mi_zy發表於2012-03-24

 

檢視使用者許可權

show grants for 你的使用者

show grants for root@'localhost';

show grants for current_user();檢視當前登陸使用者的許可權

 

要取消一個使用者的許可權,使用REVOKE語句。

REVOKE privileges (columns) ON what FROM user 

REVOKE語句只刪除許可權,而不刪除使用者。即使你撤銷了所有許可權,在user表中的使用者記錄依然保留,這意味著使用者仍然可以連線伺服器。要完全刪除一個使用者,你必須用一條Delete語句明確從user表中刪除使用者記錄: 

%mysql -u root mysql

mysql>Delete FROM user  Where User="user_name" and Host="host_name";

mysql>FLUSH PRIVILEGES;

GRANTREVOKESET PASSWORD對授權表施行的修改會立即被伺服器注意到。如果你手工地修改授權表(使用INSERTUPDATE等等),你應該執行一個FLUSH PRIVILEGES語句或執行mysqladmin flush-privileges告訴伺服器再裝載授權表,否則改變將不生效,除非你重啟伺服器。當伺服器注意到授權表被改變了時,現存的客戶連線有如下影響:

·        表和列許可權在客戶的下一次請求時生效。

·        資料庫許可權改變在下一個USE db_name命令生效。

全域性許可權的改變和口令改變在下一次客戶連線時生效。

  Delete語句刪除使用者記錄,而FLUSH語句告訴伺服器過載授權表。(當你使用GRANTREVOKE語句時,表自動過載,而你直接修改授權表時不是。)

CREATEREVOKE語句影響4個表:
授權表 內容

user
能連線伺服器的使用者以及他們擁有的任何全域性許可權
db
資料庫級許可權

tables_priv
表級許可權

columns_priv
列級許可權

還有第5個授權表(host),但它不受GRANTREVOKE的影響。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7970627/viewspace-719441/,如需轉載,請註明出處,否則將追究法律責任。

相關文章