MySQL(3)数据库用户管理
文章目錄
- 一、用戶管理
- 1.1 新建用戶
- 1.2 查看用戶信息
- 1.3 重命名用戶
- 1.4 刪除用戶
- 1.5 修改當(dāng)前登錄用戶密碼
- 1.6 修改其他用戶密碼
- 1.7 忘記 root 密碼的解決辦法
- 二、數(shù)據(jù)庫用戶授權(quán)
- 2.1 授予權(quán)限
- 2.2 查看權(quán)限
- 2.3 撤銷權(quán)限
一、用戶管理
1.1 新建用戶
CREATE USER ‘用戶名’@‘來源地址’ [IDENTIFIED BY [PASSWORD] ‘密碼’];
‘用戶名’:指定將創(chuàng)建的用戶名
‘來源地址’:指定新創(chuàng)建的用戶可在哪些主機(jī)上登錄,可使用IP地址、網(wǎng)段、主機(jī)名的形式,本地用戶可用localhost,允許任意主機(jī)登錄可用通配符%
‘密碼’:
若使用明文密碼,直接輸入’密碼’,插入到數(shù)據(jù)庫時(shí)由Mysql自動加密;
若使用加密密碼,需要先使用SELECT PASSWORD(‘密碼’); 獲取密文,再在語句中添加 PASSWORD ‘密文’;
若省略“IDENTIFIED BY”部分,則用戶的密碼將為空(不建議使用)
例:使用明文和密碼創(chuàng)建用戶
## 明文創(chuàng)建
CREATE USER ‘xiaoming’@‘localhost’ IDENTIFIED BY ‘a(chǎn)bc123’;
## 密文創(chuàng)建
select password(‘a(chǎn)bc123’);
CREATE USER ‘xiaobai’@‘localhost’ IDENTIFIED BY password ‘*6691484EA6B50DDDE1926A220DA01FA9E575C18A’;
1.2 查看用戶信息
創(chuàng)建后的用戶保存在 mysql 數(shù)據(jù)庫的 user 表里
use mysql;
select User,authentication_string,Host from user;
1.3 重命名用戶
rename user ‘zhangsan’@‘localhost’ to ‘hutaifei’@‘localhost’;
1.4 刪除用戶
drop user ‘yangpao’@‘localhost’;
1.5 修改當(dāng)前登錄用戶密碼
set password = password(‘a(chǎn)bc123’);
1.6 修改其他用戶密碼
set password for ‘xiyangyang’@‘localhost’ = password(‘123123123’);
1.7 忘記 root 密碼的解決辦法
問題:遺忘mysql密碼,如下圖所示:
解決方案:
第一步:修改配置文件,添加配置,使登錄mysql不使用授權(quán)表
第二步:重啟服務(wù),登錄測試
第三步:使用update修改root密碼,刷新數(shù)據(jù)庫
第四步:重新登錄測試
第五步:再次修改my.conf配置文件,刪除之前添加的配置命令
第六步:重啟服務(wù)測試是否需要密碼
二、數(shù)據(jù)庫用戶授權(quán)
2.1 授予權(quán)限
GRANT語句:專門用來設(shè)置數(shù)據(jù)庫用戶的訪問權(quán)限。當(dāng)指定的用戶名不存在時(shí),GRANT語句將會創(chuàng)建新的用戶;當(dāng)指定的用戶名存在時(shí),GRANT 語句用于修改用戶信息。
GRANT 權(quán)限列表 ON 數(shù)據(jù)庫名.表名 TO ‘用戶名’@‘來源地址’ [IDENTIFIED BY ‘密碼’];
#權(quán)限列表:用于列出授權(quán)使用的各種數(shù)據(jù)庫操作,以逗號進(jìn)行分隔,如“select,insert,update”。使用“all”表示所有權(quán)限,可授權(quán)執(zhí)行任何操作。
#數(shù)據(jù)庫名.表名:用于指定授權(quán)操作的數(shù)據(jù)庫和表的名稱,其中可以使用通配符“”。例如,使用“kgc.”表示授權(quán)操作的對象為 kgc數(shù)據(jù)庫中的所有表。
#‘用戶名@來源地址’:用于指定用戶名稱和允許訪問的客戶機(jī)地址,即誰能連接、能從哪里連接。來源地址可以是域名、IP 地址,還可以使用“%”通配符,表示某個(gè)區(qū)域或網(wǎng)段內(nèi)的所有地址,如“%.accp.com”、“192.168.80.%”等。
#IDENTIFIED BY:用于設(shè)置用戶連接數(shù)據(jù)庫時(shí)所使用的密碼字符串。在新建用戶時(shí),若省略“IDENTIFIED BY”部分, 則用戶的密碼將為空。
例:允許用戶 zhangsan 在本地查詢 ali數(shù)據(jù)庫中 所有表的數(shù)據(jù)記錄,但禁止查詢其他數(shù)據(jù)庫中的表的記錄。
測試:可以登錄并查看庫
可以正常訪問指定庫中表的數(shù)據(jù)
例:允許用戶xiaoming在所有終端遠(yuǎn)程連接mysql,并擁有所有權(quán)限
grant all on . to ‘xiaoming’@’%’ identified by ‘123123’;
2.2 查看權(quán)限
SHOW GRANTS FOR 用戶名@來源地址;
show grants for ‘zhangsan’@‘localhost’;
2.3 撤銷權(quán)限
SHOW GRANTS FOR ‘lisi’@’%’;
#USAGE權(quán)限只能用于數(shù)據(jù)庫登陸,不能執(zhí)行任何操作;USAGE權(quán)限不能被回收,即 REVOKE 不能刪除用戶。
總結(jié)
以上是生活随笔為你收集整理的MySQL(3)数据库用户管理的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MySQL(2)数据库管理
- 下一篇: MySQL(4) 索引、事务与存储引擎