3 回答

TA貢獻1796條經驗 獲得超7個贊
一般在為MySql創建用戶時建議使用GRANT前臺命令,當然如果對我們開發者而言,方法還有很多種,比如使用INSERT命令,甚至是直接修改mysql user數據表,但仍然建議按照MySQL規范去授權賬戶。因為它太容易忘記,特別整理方便參考。
1、登錄MySQL
輸入mysql -u root和密碼即可登錄到Mysql。
2、選擇數據庫
語句如下:use mysql;
3、在mysql的user表中增加連接用戶
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 dbx.* TO 'username'@'localhost' IDENTIFIED BY 'password';
本語句中的權限根據實際需要確定:
"dbx"替換為授權訪問的數據庫名,如果只給某張表授權:dbx.tablename
"username"是步驟2授權用戶名
"password"是步驟2授權用戶的設置密碼
這樣就為該用戶授予了對某數據表的SELECT, INSERT, UPDATE, DELETE, CAREATE, DROP權限。
5、生效授權,創建完畢
FLUSH PRIVILEGES;
備注:
1、不要直接使用INSERT語句添加user記錄,使用INSERT可能出現:ERROR 1364 (HY000): Field 'ssl_cipher' doesn't have a default value錯誤。不過早期的MYSQL版本筆者倒沒出現這個錯誤,因為天緣一直都是直接修改user表或直接使用INSERT語句完成,后來升級MYSQL到5.1的時候,發現可能會出現這個錯誤。
2、上文3和4,也可使用一句話GRANT ALL ON tbx.* TO 'username' IDENTIFIED BY 'password',這句話會自動創建username并為之授權。更多授權權限可參考MYSQL官方網站。

TA貢獻1805條經驗 獲得超9個贊
mysql命令行新建用戶授權;
GRANT ALL PRIVILEGES ON *.* TO 'user'@'%' IDENTIFIED BY 'youpassword' WITH GRANT OPTION; FLUSH PRIVILEGES;

TA貢獻1827條經驗 獲得超8個贊
grant all privileges on *(權限數據庫).*(權限表) to '(用戶名)'@'(IP)'identified by '(密碼)';
創建用戶并授予某個庫某個表所有權限
添加回答
舉報