mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作詳解
1、登錄mysql
mysql -uroot -p
2、先查詢都有哪些用戶
select host,user from mysql.user;
紅色箭頭是主管理員,黃色箭頭是mysql系統(tǒng)自帶的,不要?jiǎng)铀K{(lán)色箭頭是子用戶,這個(gè)是我以前匹配的,現(xiàn)在刪掉,我們重新來。
3、刪掉用戶:
drop user '用戶名'@'主機(jī)名'; drop user 'wyy'@'192.168.0.105';
4、創(chuàng)建用戶
create user '用戶名'@'允許那個(gè)主機(jī)鏈接' identified by '密碼'; create user 'wyy'@'192.168.0.105' identified by 'wyy18222'; 只允許192.168.0.105的主機(jī)鏈接
備注:
Mysql8.0 默認(rèn)采用 caching-sha2-password 加密,有可能舊的客戶端不支持,可改為 mysql_native_password;
create user 'test'@'%' identified with mysql_native_password BY '密碼';
百分號(hào)%;表示任何ip地址都可以鏈接
create user ‘wyy’@‘192.168.0.105’ identified by ‘wyy18222’;這個(gè)是只能192.168.0.105的鏈接。
5、修改密碼
Alter user '用戶名'@'主機(jī)名' identified by '新密碼'; alter user 'wyy'@'192.168.0.105' identified by '123';
6、授權(quán)
給用戶授權(quán)所有權(quán)限
grant all privileges on *.* to '用戶名'@'主機(jī)名' with grant option; grant all privileges on *.* to 'wyy'@'192.168.0.105' with grant option;
grant:授權(quán)、授予
privileges:權(quán)限,特權(quán)
第一個(gè)星號(hào):表示所有數(shù)據(jù)庫(kù)
第二個(gè)星號(hào):表示所有表
with grant option:表示該用戶可以給其他用戶賦予權(quán)限,但不能超過該用戶的權(quán)限。這個(gè)不加也行。
例如:如果wyy只有select、update權(quán)限,沒有insert、delete權(quán)限,給另一個(gè)用戶授權(quán)時(shí),只能授予它select、update權(quán)限,不能授予insert、delete權(quán)限。
給用戶授權(quán)個(gè)別權(quán)限
all privileges 可換成 select,update,insert,delete,drop,create 等操作
grant select,insert,update,delete on *.* to '用戶名'@'主機(jī)名';
給用戶授權(quán)指定權(quán)限
給用戶授予指定的數(shù)據(jù)庫(kù)權(quán)限
grant all privileges on 數(shù)據(jù)庫(kù) . * to 'wyy'@'192.168.0.105'; grant all privileges on xrs . * to 'wyy'@'192.168.0.105'; 將數(shù)據(jù)庫(kù)名為xrs的所有權(quán)限賦予wyy
給用戶授予指定的表權(quán)限
grant all privileges on 數(shù)據(jù)庫(kù) . 指定表名 to 'wyy'@'192.168.0.105'; 將某個(gè)數(shù)據(jù)庫(kù)下的某個(gè)表的權(quán)限賦予wyy
注意:
網(wǎng)上有的直接創(chuàng)建并賦權(quán):
grant all privileges * . * to ‘要?jiǎng)?chuàng)建的用戶’@‘localhost’ identified by ‘自定義密碼’;
我在mysql8試了不行(8版本以下還沒試過),要先創(chuàng)建用戶再進(jìn)行賦權(quán),不能同時(shí)進(jìn)行
7、刷新權(quán)限
flush privileges;
新設(shè)置用戶或更改密碼后需用flush privileges刷新MySQL的系統(tǒng)權(quán)限相關(guān)表,
否則會(huì)出現(xiàn)拒絕訪問
還有一種方法,就是重新啟動(dòng)mysql服務(wù)器,來使新設(shè)置生效。
8、查看用戶授權(quán)
show grants for 'wyy'@'192.168.0.105';
9、撤銷用戶授權(quán)(銷權(quán))
revoke all privileges on *.* from 'wyy'@'192.168.0.105';
用戶有什么權(quán)限就撤什么權(quán)限
補(bǔ)充:mysql8.0 創(chuàng)建用戶和授權(quán)用戶遇到的坑
創(chuàng)建用戶:
create user userName@localhost identified with mysql_native_password by 'password';(with mysql_native_password 如果沒有這個(gè),Navicat將無(wú)法登陸提示:2059 - authentication plugin...錯(cuò)誤,因?yàn)镹avicat不支持最新數(shù)據(jù)庫(kù)默認(rèn)的加密方式);
授權(quán)用戶:
GRANT ALL PRIVILEGES ON databaseName.* TO userName@'ip';(注意這點(diǎn)跟以往數(shù)據(jù)庫(kù)都不一樣,無(wú)需后面跟著IDENTIFIED BY 'password';否則將提示ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'IDENTIFIED BY 'password'' at line 5)
總結(jié)
到此這篇關(guān)于mysql8創(chuàng)建、刪除用戶以及授權(quán)、消權(quán)操作的文章就介紹到這了,更多相關(guān)mysql8創(chuàng)建刪除用戶及授權(quán)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- MySql之授權(quán)用戶權(quán)限如何設(shè)置
- mysql用戶創(chuàng)建與授權(quán)的簡(jiǎn)單實(shí)例
- MySQL GRANT用戶授權(quán)的實(shí)現(xiàn)
- mysql查看用戶授權(quán)信息的具體方法
- mysql 的root 用戶無(wú)法授權(quán)及解決navicat 遠(yuǎn)程授權(quán)提示1044問題
- mysql創(chuàng)建數(shù)據(jù)庫(kù),添加用戶,用戶授權(quán)實(shí)操方法
- Mysql中新建用戶及授權(quán)的方法分享
- mysql創(chuàng)建用戶授權(quán)步驟詳解
相關(guān)文章
MySQL5.7升級(jí)MySQL8.0的完整卸載與安裝及連接Navicat的步驟
因?yàn)橐粋€(gè)項(xiàng)目交接需要需要將mysql物理備份文件還原至MySQL5.7,并且將mysql5.7升級(jí)到MySQL8.0,下面這篇文章主要給大家介紹了關(guān)于MySQL5.7升級(jí)MySQL8.0的完整卸載與安裝及連接Navicat的相關(guān)資料,需要的朋友可以參考下2023-03-03用批處理實(shí)現(xiàn)自動(dòng)備份和清理mysql數(shù)據(jù)庫(kù)的代碼
有網(wǎng)友問我在win2003下如何自動(dòng)備份MySQL數(shù)據(jù)庫(kù),既然是自動(dòng)備份,那肯定得寫腳本,當(dāng)然我們也可以利用軟件實(shí)現(xiàn)2013-08-08MYSQL替換時(shí)間(年月日)字段時(shí)分秒不變實(shí)例解析
這篇文章主要介紹了MYSQL替換時(shí)間(年月日)字段,時(shí)分秒不變的實(shí)現(xiàn)方法,需要的朋友可以參考下2017-07-07MySQL Left JOIN時(shí)指定NULL列返回特定值詳解
我們有時(shí)會(huì)有這樣的應(yīng)用,需要在sql的left join時(shí),需要使值為NULL的列不返回NULL而時(shí)某個(gè)特定的值,比如0。這個(gè)時(shí)候,用is_null(field,0)是行不通的,會(huì)報(bào)錯(cuò)的,可以用ifnull實(shí)現(xiàn),但是COALESE似乎更符合標(biāo)準(zhǔn)2013-07-07