在mysql的user表中增加串連使用者帳號:
這裡不要直接使用INSERT語句添加user記錄,使用INSERT可能出現:
ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value錯誤。不過早期的MYSQL版本筆者倒沒出現這個錯誤,因為天緣一直都是直接修改user表或直接使用INSERT陳述式完成,後來升級MYSQL到5.1的時候,發現可能會出現這個錯誤。
具體方法
1.建立使用者。
| 代碼如下 |
複製代碼 |
//登入MYSQL @>mysql -u root -p @>密碼 //建立使用者 mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234")); //重新整理系統許可權表 mysql>flush privileges; 這樣就建立了一個名為:phplamp 密碼為:1234 的使用者。 然後登入一下。 mysql>exit; @>mysql -u phplamp -p @>輸入密碼 mysql>登入成功 |
建議使用GRANT語句進行授權,語句如下:
| 代碼如下 |
複製代碼 |
GRANT USAGE ON *.* TO 'username'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION; |
上句:
“username”替換為將要授權的使用者名稱,比如clientusr;
“password”替換為clientusr設定的密碼;
4、可訪問資料表授權
建立好帳戶之後,就開始給上面的common user進行資料表授權,步驟3中增加的串連使用者預設許可權都是“N”的,必須在db表中為該帳戶授權,允許其訪問專用資料庫,當然超級使用者就不說了。
使用下面語句:
| 代碼如下 |
複製代碼 |
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON tablename.* TO 'username'@'localhost' IDENTIFIED BY 'password'; |
本語句中的許可權根據實際需要確定:
"tablename"替換為授權訪問的資料表table名
"username"是步驟2授權使用者名
"password"是步驟2授權使用者的設定密碼
這樣就為該使用者授予了對某資料表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP許可權。
5、生效授權,建立完畢
一句話即可:FLUSH PRIVILEGES;
3.刪除使用者。
| 代碼如下 |
複製代碼 |
@>mysql -u root -p @>密碼 mysql>DELETE FROM user WHERE User="phplamp" and Host="localhost"; mysql>flush privileges; //刪除使用者的資料庫 mysql>drop database phplampDB; |