MySQL使用者管理
來源:互聯網
上載者:User
MySQL管理員應該知道如何設定MySQL使用者帳號,指出哪個使用者可以串連伺服器,從哪裡串連,串連後能做什麼。MySQL 3.22.11開始引入兩條語句使得這項工作更容易做:GRANT語句建立MySQL使用者並指定其許可權,而REVOKE語句刪除許可權。兩條語句扮演了mysql資料庫的前端角色,並提供與直接操作這些表的內容不同的另一種方法。CREATE和REVOKE語句影響4個表:授權表
內容
user 能串連伺服器的使用者以及他們擁有的任何全域許可權
db 資料庫級許可權
tables_priv 表級許可權
columns_priv 列級許可權
還有第5個授權表(host),但它不受GRANT和REVOKE的影響。
當你對一個使用者發出一條GRANT語句時,在user表中為該使用者建立一條記錄。如果語句指定任何全域許可權(系統管理權限或適用於所有資料庫的許可權),這些也記錄在user表中。如果你指定資料庫、表和列級許可權,他們被分別記錄在db、tables_priv和columns_priv表中。
用GRANT和REVOKE比直接修改授權表更容易些,然而,建議你閱讀一下《MySQL安全性指南》。這些表異常重要,而且作為一名管理員,你應該理解它們如何超越GRANT和REVOKE語句的功能水平。
在下面的章節中,我們將介紹如何設定MySQL使用者帳號並授權。我們也涉及如何撤權和從授權表中刪除使用者。
你可能也想考慮使用mysqlaccess和mysql_setpermission指令碼,它是MySQL分發的一部分,它們是Perl指令碼,提供GRANT語句的另一種選擇設定使用者帳號。mysql_setpermission需要安裝DBI支援。
1 建立使用者並授權
GRANT語句的文法看上去像這樣:
GRANT privileges (columns) ON what TO user IDENTIFIED BY "password" WITH GRANT OPTION
要使用該語句,你需要填寫下列部分:
privileges
授予使用者的許可權,下表列出可用於GRANT語句的許可權指定符:
許可權指定符
許可權允許的操作
ALTER 修改表和索引
CREATE 建立資料庫和表
DELETE 刪除表中已有的記錄
DROP 拋棄(刪除)資料庫和表
INDEX 建立或拋棄索引
INSERT 向表中插入新行