
什么時候會用到
- 對接外系統(tǒng)時,需要給其余系統(tǒng)開放訪問權(quán)限
- 本系統(tǒng)中,分權(quán)限管理數(shù)據(jù),防止root權(quán)限刪庫跑路??
mysql版本
MySql8.0+
具體步驟
1.命令行進入MySql
使用 mysql -u#UserName -p#PassWord 命令進入MySql
#UserName 代表你的MySql用戶名</br>
#PassWord 代表你的MySql密碼
??本狗的用戶名是root,密碼是root
mysql -uroot -proot

2.進入數(shù)據(jù)庫
如果沒有創(chuàng)建數(shù)據(jù)庫則先使用命令,若已存在數(shù)據(jù)庫則跳過此步驟
create database #databaseName;
#databaseName 代表你操作的數(shù)據(jù)庫
??本狗要創(chuàng)建的是b2b數(shù)據(jù)庫,切記加上分號;
create database b2b;
use databaseName;
#databaseName 代表你操作的數(shù)據(jù)庫
??本狗要操作的是b2b數(shù)據(jù)庫,切記加上分號;
use b2b;

3.創(chuàng)建用戶
create user '#userName'@'#host' identified by '#passWord';
#userName 代表你要創(chuàng)建的此數(shù)據(jù)庫的新用戶賬號</br>
#host 代表訪問權(quán)限,如下
- %代表通配所有host地址權(quán)限(可遠(yuǎn)程訪問)
- localhost為本地權(quán)限(不可遠(yuǎn)程訪問)
- 指定特殊Ip訪問權(quán)限 如10.138.106.102
#passWord 代表你要創(chuàng)建的此數(shù)據(jù)庫的新用密碼
??本狗要創(chuàng)建的用戶是testUser,密碼是Haier...123,并且可遠(yuǎn)程訪問
??密碼強度需要大小寫及數(shù)字字母,否則會報密碼強度不符合
??用戶名如果重復(fù),會報錯ERROR 1396 (HY000): Operation CREATE USER failed for 'testUser'@'%'
create user 'testUser'@'%' identified by 'Haier...123';

4.查看用戶
進入mysql系統(tǒng)數(shù)據(jù)庫
user mysql;
查看用戶的相關(guān)信息
select host, user, authentication_string, plugin from user;
user mysql;
select host, user, authentication_string, plugin from user;
若展示的信息中有剛加入的用戶testUser,則添加成功。切記查看完要切換回操作的數(shù)據(jù)庫,本狗需要操作的是b2b
use b2b;

5.用戶授權(quán)
grant #auth on #databaseName.#table to '#userName'@'#host';
#auth 代表權(quán)限,如下
- all privileges 全部權(quán)限
- select 查詢權(quán)限
- select,insert,update,delete 增刪改查權(quán)限
- select,[...]增...等權(quán)限
#databaseName 代表數(shù)據(jù)庫名
#table 代表具體表,如下
- *代表全部表
- A,B 代表具體A,B表
#userName 代表用戶名
#host 代表訪問權(quán)限,如下
- %代表通配所有host地址權(quán)限(可遠(yuǎn)程訪問)
- localhost為本地權(quán)限(不可遠(yuǎn)程訪問)
- 指定特殊Ip訪問權(quán)限 如10.138.106.102
??本狗賦予b2b數(shù)據(jù)庫area_code表增刪改差權(quán)限
grant select,insert,update,delete on b2b.area_code to 'testUser'@'%';

6.刷新
??切記一定要刷新授權(quán)才可生效
flush privileges;

7.查看用戶權(quán)限
show grants for '#userName'@'#host';
#userName 代表用戶名
#host 代表訪問權(quán)限,如下
- %代表通配所有host地址權(quán)限(可遠(yuǎn)程訪問)
- localhost為本地權(quán)限(不可遠(yuǎn)程訪問)
- 指定特殊Ip訪問權(quán)限 如10.138.106.102
??本狗要查看的是testUser
show grants for 'testUser'@'%';

8.驗證
使用navicat等可視化工具驗證

9.撤銷權(quán)限
revoke #auth on #databaseName.#table from '#userName'@'#host';
#auth 代表權(quán)限,如下
- all privileges 全部權(quán)限
- select 查詢權(quán)限
- select,insert,update,delete 增刪改查權(quán)限
- select,[...]增...等權(quán)限
#databaseName 代表數(shù)據(jù)庫名
#table 代表具體表,如下
- *代表全部表
- A,B 代表具體A,B表
#userName 代表用戶名
#host 代表訪問權(quán)限,如下
- %代表通配所有host地址權(quán)限(可遠(yuǎn)程訪問)
- localhost為本地權(quán)限(不可遠(yuǎn)程訪問)
- 指定特殊Ip訪問權(quán)限 如10.138.106.102
??本狗要撤銷testUser用戶對b2b數(shù)據(jù)庫中的area_code表的增刪改差權(quán)限
revoke select,insert,update,delete on b2b.area_code from 'testUser'@'%';
??本狗再查看用戶權(quán)限
show grants for 'testUser'@'%';

10.刪除用戶
drop user '#userName'@'#host';
#userName 代表用戶名
#host 代表訪問權(quán)限,如下
- %代表通配所有host地址權(quán)限(可遠(yuǎn)程訪問)
- localhost為本地權(quán)限(不可遠(yuǎn)程訪問)
- 指定特殊Ip訪問權(quán)限 如10.138.106.102
??本狗要刪除用戶testUser
drop user 'testUser'@'%';

?? 本文均由JavaDog原創(chuàng),轉(zhuǎn)載請標(biāo)明出處。