使用者授權方法
你可以通過發出GRANT語句增加新使用者:
shell> mysql --user=root mysql mysql> GRANT ALL PRIVILEGES ON *.* TO monty@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost; mysql> GRANT USAGE ON *.* TO dummy@localhost;
這些GRANT語句安裝3個新使用者
授權:
命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
說明: privileges - 使用者的操作許可權,如SELECT , INSERT , UPDATE 等(詳細列表見該文最後面).如果要授予所的許可權則使用ALL.;databasename - 資料庫名,tablename-表名,如果要授予該使用者對所有資料庫和表的相應操作許可權則可用*表示, 如*.*.
例子:
GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; GRANT ALL ON *.* TO 'pig'@'%';
注意:用以上命令授權的使用者不能給其它使用者授權,如果想讓該使用者可以授權,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
三.設定與更改使用者密碼
命令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是當前登陸使用者用
SET PASSWORD = PASSWORD("newpassword");
例子:
SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");
撤權並刪除使用者
要取消一個使用者的許可權,使用REVOKE語句。REVOKE的文法非常類似於GRANT語句,除了TO用FROM取代並且沒有INDETIFED BY和WITH GRANT OPTION子句:
REVOKE privileges (columns) ON what FROM user
user部分必須匹配原來 GRANT語句的你想撤權的使用者的user部分。privileges部分不需匹配,你可以用GRANT語句授權,然後用REVOKE語句只撤銷部分許可權。
REVOKE語句只刪除許可權,而不刪除使用者。即使你撤銷了所有許可權,在user表中的使用者記錄依然保留,這意味著使用者仍然可以串連伺服器。要完全刪除一個使用者,你必須用一條Delete語句明確從user表中刪除使用者記錄:
%mysql -u root mysqlmysql>Delete FROM user ->Where User="user_name" and Host="host_name";mysql>FLUSH PRIVILEGES;
Delete語句刪除使用者記錄,而FLUSH語句告訴伺服器重載授權表。(當你使用GRANT和REVOKE語句時,表自動重載,而你直接修改授權表時不是。)