首頁 > 軟體

mysql8建立、刪除使用者以及授權、消權操作詳解

2022-03-29 19:01:54

1、登入mysql

mysql -uroot -p

2、先查詢都有哪些使用者

select host,user from mysql.user;

紅色箭頭是主管理員,黃色箭頭是mysql系統自帶的,不要動它。藍色箭頭是子使用者,這個是我以前匹配的,現在刪掉,我們重新來。

3、刪掉使用者:

drop user '使用者名稱'@'主機名';
drop user 'wyy'@'192.168.0.105';

4、建立使用者

create user '使用者名稱'@'允許那個主機連結' identified by '密碼';

create user 'wyy'@'192.168.0.105' identified by 'wyy18222';
只允許192.168.0.105的主機連結

備註:

Mysql8.0 預設採用 caching-sha2-password 加密,有可能舊的使用者端不支援,可改為 mysql_native_password;

create user 'test'@'%' identified with mysql_native_password BY '密碼';

百分號%;表示任何ip地址都可以連結

create user ‘wyy’@‘192.168.0.105’ identified by ‘wyy18222’;這個是隻能192.168.0.105的連結。

5、修改密碼

Alter user '使用者名稱'@'主機名' identified by '新密碼';
alter user 'wyy'@'192.168.0.105' identified by '123';

6、授權

給使用者授權所有許可權

grant all privileges on *.* to '使用者名稱'@'主機名' with grant option;

grant all privileges on *.* to 'wyy'@'192.168.0.105' with grant option;

grant:授權、授予

privileges:許可權,特權

第一個星號:表示所有資料庫

第二個星號:表示所有表

with grant option:表示該使用者可以給其他使用者賦予許可權,但不能超過該使用者的許可權。這個不加也行。

例如:如果wyy只有select、update許可權,沒有insert、delete許可權,給另一個使用者授權時,只能授予它select、update許可權,不能授予insert、delete許可權。

給使用者授權個別許可權

all privileges 可換成 select,update,insert,delete,drop,create 等操作

grant select,insert,update,delete on *.* to '使用者名稱'@'主機名';

給使用者授權指定許可權

給使用者授予指定的資料庫許可權

grant all privileges on 資料庫 . * to 'wyy'@'192.168.0.105';

grant all privileges on xrs . * to 'wyy'@'192.168.0.105';
將資料庫名為xrs的所有許可權賦予wyy

給使用者授予指定的表許可權

grant all privileges on 資料庫 . 指定表名 to 'wyy'@'192.168.0.105';
將某個資料庫下的某個表的許可權賦予wyy

注意:

網上有的直接建立並賦權:

grant all privileges * . * to ‘要建立的使用者’@‘localhost’ identified by ‘自定義密碼’;

我在mysql8試了不行(8版本以下還沒試過),要先建立使用者再進行賦權,不能同時進行

7、重新整理許可權

flush privileges;
新設定使用者或更改密碼後需用flush privileges重新整理MySQL的系統許可權相關表,
否則會出現拒絕存取

還有一種方法,就是重新啟動mysql伺服器,來使新設定生效。­

8、檢視使用者授權

show grants for 'wyy'@'192.168.0.105';

9、復原使用者授權(銷權)

revoke all privileges on *.* from 'wyy'@'192.168.0.105';

使用者有什麼許可權就撤什麼許可權

補充:mysql8.0 建立使用者和授權使用者遇到的坑

建立使用者:

create user userName@localhost identified with mysql_native_password by 'password';(with mysql_native_password 如果沒有這個,Navicat將無法登陸提示:2059 - authentication plugin...錯誤,因為Navicat不支援最新資料庫預設的加密方式);

授權使用者:

GRANT
ALL PRIVILEGES
ON databaseName.*
TO userName@'ip';(注意這點跟以往資料庫都不一樣,無需後面跟著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)

總結

到此這篇關於mysql8建立、刪除使用者以及授權、消權操作的文章就介紹到這了,更多相關mysql8建立刪除使用者及授權內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com