為什麼我要講是mysql 5呢,因為以前的版本我們可以直接使用INSERT向mysql表中插入mysql用戶了,後來後mysql5之後完善了就不可以這麼操作了,下面我來介紹MySql 5.X創建用戶並授權方法有需要了解的朋友可參考。
在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;