Mysql中的用戶(hù)管理實(shí)踐
13. 用戶(hù)管理
為什么不能只用 root: 出于安全考慮,不應(yīng)該所有操作都由 root 執(zhí)行。
MySQL 的用戶(hù)信息存儲(chǔ)位置: mysql.user
表。
13.1 用戶(hù)
?? 13.1.1 用戶(hù)信息
- 用戶(hù)表字段解釋?zhuān)?ul>
host
: 可以從哪臺(tái)主機(jī)登錄。user
: 用戶(hù)名。authentication_string
: 加密后的密碼。*_priv
: 用戶(hù)權(quán)限。
select User,Host,authentication_string from user;
?? 13.1.2 創(chuàng)建用戶(hù)
語(yǔ)法:
create user '用戶(hù)名'@'主機(jī)名' identified by '密碼';
示例:
create user 'maomi-9527'@'localhost' identified by '666888';
?? 13.1.3 刪除用戶(hù)
正確語(yǔ)法:
drop user '用戶(hù)名'@'主機(jī)名';
常見(jiàn)錯(cuò)誤:
drop user maomi-9527; -- 錯(cuò)誤,因?yàn)橹鳈C(jī)名默認(rèn)是 %
原因:
mysql可以創(chuàng)建兩個(gè)相同用戶(hù)相同密碼但登錄地點(diǎn)不一樣的用戶(hù):
?? 13.1.4 修改用戶(hù)密碼
自己改密碼:
set password = password('新密碼');
root 改指定用戶(hù)密碼:
set password for 'maomi-9527'@'localhost' = password('666888');
由于在 MySQL 中,用戶(hù)信息本質(zhì)上是存儲(chǔ)在 mysql.user
表中的,因此我們也可以直接通過(guò) SQL 語(yǔ)句修改該表的內(nèi)容來(lái)重設(shè)密碼。例如:
UPDATE user SET authentication_string = PASSWORD('你的新密碼') WHERE user = 'root' AND host = 'localhost';
?? 13.1.5 密碼策略要求
MySQL 8.0+ 版本默認(rèn)啟用了 validate_password
插件,它會(huì)根據(jù)以下規(guī)則檢查密碼強(qiáng)度:
- 密碼長(zhǎng)度:默認(rèn)要求密碼至少為 8 個(gè)字符。
- 字符復(fù)雜度:
- 至少包含一個(gè)大寫(xiě)字母(A-Z)。
- 至少包含一個(gè)小寫(xiě)字母(a-z)。
- 至少包含一個(gè)數(shù)字(0-9)。
- 至少包含一個(gè)特殊字符(例如
@
,#
,$
,%
)。
1. 設(shè)置一個(gè)更強(qiáng)的密碼
你可以設(shè)置一個(gè)符合強(qiáng)度要求的密碼,例如:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword123!';
或者:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Str0ngP@ssw0rd!';
2. 臨時(shí)降低密碼策略要求
如果你不想設(shè)置那么復(fù)雜的密碼,可以通過(guò)降低密碼策略要求來(lái)解決。執(zhí)行以下命令來(lái)臨時(shí)降低要求:
SET GLOBAL validate_password_policy = LOW;-------------------設(shè)置密碼強(qiáng)度為低 SET GLOBAL validate_password_length = 6;----------------------設(shè)置密碼長(zhǎng)度為6 SET GLOBAL validate_password_mixed_case_count = 0;------------設(shè)置混合字符為0 SET GLOBAL validate_password_special_char_count = 0; --------設(shè)置特殊字符個(gè)數(shù)為0
然后,你就可以設(shè)置一個(gè)簡(jiǎn)單的密碼了:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'simplepass';
注意: 降低密碼策略可能會(huì)影響安全性,操作完成后可以將策略恢復(fù):
SET GLOBAL validate_password_policy = MEDIUM;-------------------設(shè)置密碼強(qiáng)度為低 SET GLOBAL validate_password_length = 8;----------------------設(shè)置密碼長(zhǎng)度為6 SET GLOBAL validate_password_mixed_case_count = 1;------------設(shè)置混合字符為0 SET GLOBAL validate_password_special_char_count = 1; --------設(shè)置特殊字符個(gè)數(shù)為0
3. 查看當(dāng)前密碼策略
你可以通過(guò)以下命令查看當(dāng)前密碼策略的設(shè)置:
SHOW VARIABLES LIKE 'validate_password%';
13.2 數(shù)據(jù)庫(kù)的權(quán)限
?? 常見(jiàn)權(quán)限:
select
, insert
, update
, delete
, create
, drop
, grant
, all
等。
?? 13.2.1 授權(quán)
授權(quán)語(yǔ)法:
grant 權(quán)限列表 on 數(shù)據(jù)庫(kù).表 to '用戶(hù)名'@'主機(jī)' [identified by '密碼'];
示例:
grant select on text.* to 'maomi-9527'@'localhost';------給用戶(hù)在test數(shù)據(jù)庫(kù)中所有表的查看權(quán)限
賦權(quán)前:
賦權(quán)后:
查看當(dāng)前權(quán)限:
show grants for 'maomi-9527'@'localhost';
?? 13.2.2 回收權(quán)限
撤銷(xiāo)語(yǔ)法:
revoke 權(quán)限列表 on 數(shù)據(jù)庫(kù).對(duì)象 from '用戶(hù)名'@'主機(jī)';
示例:
revoke select on text.* from 'maomi-9527'@'localhost';
?? 常見(jiàn)問(wèn)題提示:
若密碼設(shè)置失敗報(bào)錯(cuò) ERROR 1819
:
SHOW VARIABLES LIKE 'validate_password%';
可調(diào)整密碼策略來(lái)解決。
賦權(quán)后無(wú)效時(shí)建議:
flush privileges;
到此這篇關(guān)于Mysql中的用戶(hù)管理的文章就介紹到這了,更多相關(guān)mysql用戶(hù)管理內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux系統(tǒng)下自行編譯安裝MySQL及基礎(chǔ)配置全過(guò)程解析
這篇文章主要介紹了Linux系統(tǒng)下自行編譯安裝MySQL及基礎(chǔ)配置全過(guò)程解析,配置方面主要針對(duì)InnoDB引擎來(lái)講,需要的朋友可以參考下2016-02-02MySQL中SHOW TABLE STATUS的使用及說(shuō)明
這篇文章主要介紹了MySQL中SHOW TABLE STATUS的使用及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10Mysql InnoDB的鎖定機(jī)制實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Mysql InnoDB的鎖定機(jī)制,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01如何用SQL命令查看Mysql數(shù)據(jù)庫(kù)大小
本篇文章是對(duì)用SQL命令查看Mysql數(shù)據(jù)庫(kù)大小的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06mysql查詢(xún)語(yǔ)句通過(guò)limit來(lái)限制查詢(xún)的行數(shù)
這篇文章主要介紹了mysql查詢(xún)語(yǔ)句,通過(guò)limit來(lái)限制查詢(xún)的行數(shù),需要的朋友可以參考下2014-02-02解決mysql.server?start執(zhí)行報(bào)錯(cuò)ERROR!The?server?quit?without?u
這篇文章主要介紹了解決mysql.server?start執(zhí)行報(bào)錯(cuò)ERROR!The?server?quit?without?updating?PID?file問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09mysql實(shí)現(xiàn)定時(shí)備份的詳細(xì)圖文教程
這篇文章主要給大家介紹了關(guān)于mysql實(shí)現(xiàn)定時(shí)備份的詳細(xì)圖文教程,我們都知道數(shù)據(jù)是無(wú)價(jià),如果不對(duì)數(shù)據(jù)進(jìn)行備份,相當(dāng)是讓數(shù)據(jù)在裸跑,一旦服務(wù)器出問(wèn)題,只有哭的份了,需要的朋友可以參考下2023-07-07