MySQL用戶管理使用及詳解
1.用戶
如果我們只能使用root用戶,這樣存在安全隱患。這時,就需要使用MySQL的用戶管理。

1.1.用戶信息
MySQL中的用戶,都存儲在系統(tǒng)數(shù)據(jù)庫mysql的user表中 mysql> use mysql; Database changed mysql> select host,user,authentication_string from user; +-----------+---------------+-------------------------------------------+ | host | user | authentication_string | +-----------+---------------+-------------------------------------------+ | localhost | root | *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B | | localhost | mysql.session | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | localhost | mysql.sys | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | +-----------+---------------+-------------------------------------------+ --可以通過desc user初步查看一下表結(jié)構(gòu) 字段解釋: host: 表示這個用戶可以從哪個主機登陸,如果是localhost,表示只能從本機登陸 user: 用戶名 authentication_string: 用戶密碼通過password函數(shù)加密后的 *_priv: 用戶擁有的權(quán)限
1.2.創(chuàng)建用戶
語法: create user '用戶名'@'登陸主機/ip' identified by '密碼'; 案例: mysql> create user 'whb'@'localhost' identified by '12345678'; mysql> select user,host,authentication_string from user; +---------------+-----------+-------------------------------------------+ | user | host | authentication_string | +---------------+-----------+-------------------------------------------+ | root | % | *A2F7C9D334175DE9AF4DB4F5473E0BD0F5FA9E75 | | mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE | | whb | localhost | *84AAC12F54AB666ECFC2A83C676908C8BBC381B1 | --新增用 戶 +---------------+-----------+-------------------------------------------+ 4 rows in set (0.00 sec) -- 此時便可以使用新賬號新密碼進行登陸啦 -備注:可能實際在設(shè)置密碼的時候,因為mysql本身的認證等級比較高,一些簡單的密碼無法設(shè)置,會爆出 如下報錯: -- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements -- 解決方案:https://blog.csdn.net/zhanaolu4821/article/details/93622812 --查看密碼設(shè)置相關(guān)要求:SHOW VARIABLES LIKE 'validate_password%'; --關(guān)于新增用戶這里,需要大家注意,不要輕易添加一個可以從任意地方登陸的user
1.3.刪除用戶
語法: drop user '用戶名'@'主機名' mysql> drop user whb; --嘗試刪除 ERROR 1396 (HY000): Operation DROP USER failed for 'whb'@'%' -- <= 直接給個用戶名, 不能刪除,它默認是%,表示所有地方可以登陸的用戶 mysql> drop user 'whb'@'localhost'; --刪除用戶 Query OK, 0 rows affected (0.00 sec)
1.4修改用戶密碼
語法:
1.自己改自己密碼
set password=password('新的密碼');
2.root用戶修改指定用戶的密碼
set password for '用戶名'@'主機名'=password('新的密碼');2.數(shù)據(jù)庫的權(quán)限
MySQL數(shù)據(jù)庫提供的權(quán)限列表:

2.1.給用戶授權(quán)
剛創(chuàng)建的用戶沒有任何權(quán)限。需要給用戶授權(quán): 語法: grant 權(quán)限列表 on 庫.對象名 to '用戶名'@'登陸位置' [identified by '密碼'] 說明: 1.權(quán)限列表,多個權(quán)限用逗號分開 grant select on ... grant select, delete, create on .... grant all [privileges] on ... -- 表示賦予該用戶在該對象上的所有權(quán)限 2.*.* : 代表本系統(tǒng)中的所有數(shù)據(jù)庫的所有對象(表,視圖,存儲過程等) 3.庫.* : 表示某個數(shù)據(jù)庫中的所有數(shù)據(jù)對象(表,視圖,存儲過程等) 4.identified by可選。 如果用戶存在,賦予權(quán)限的同時修改密碼,如果該用戶不存在,就是創(chuàng)建用戶 5.注意:如果發(fā)現(xiàn)賦權(quán)限后,沒有生效,執(zhí)行如下指令: flush privileges;
2.2.回收權(quán)限
語法: revoke 權(quán)限列表 on 庫.對象名 from '用戶名'@'登陸位置';
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Window 下安裝Mysql5.7.17 及設(shè)置編碼為utf8的方法
這篇文章主要介紹了Window 下安裝Mysql5.7.17 及設(shè)置編碼為utf8的方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03
MySQL?中的服務(wù)器配置和狀態(tài)詳解(MySQL?Server?Configuration?and?Statu
MySQL服務(wù)器配置和狀態(tài)設(shè)置包括服務(wù)器選項、系統(tǒng)變量和狀態(tài)變量三個方面,可以通過命令行、配置文件或SQL語句進行設(shè)置和查看,服務(wù)器選項和系統(tǒng)變量可以是全局或會話級別的,狀態(tài)變量只讀且不可修改,sql_mode是一個特殊的變量,影響SQL語句的執(zhí)行模式,感興趣的朋友一起看看吧2025-02-02
MySQL函數(shù)sysdate()與now()的區(qū)別測試用例對比
這篇文章主要為大家介紹了MySQL函數(shù)sysdate()與now()的區(qū)別測試用例對比詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12
MySQL中報錯:Can’t find file: ‘./mysql/plugin.frm’的解決方法
這篇文章主要給大家介紹了關(guān)于在MySQL中報錯:Can't find file: './mysql/plugin.frm'的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2017-11-11
MySQL兩種表存儲結(jié)構(gòu)MyISAM和InnoDB的性能比較測試
MySQL兩種表存儲結(jié)構(gòu)MyISAM和InnoDB的性能比較測試...2006-12-12
關(guān)于MySQL中savepoint語句使用時所出現(xiàn)的錯誤
這篇文章主要介紹了關(guān)于MySQL中savepoint語句使用時所出現(xiàn)的錯誤,字符串出現(xiàn)e時所產(chǎn)生的問題也被作為MySQL的bug進行過提交,需要的朋友可以參考下2015-05-05

