MySQL8.0 創建用戶及授權 - 看這篇就足夠了
什么時候會用到
- 對接外系統時,需要給其余系統開放訪問權限
- 本系統中,分權限管理數據,防止root權限刪庫跑路??
mysql版本
MySql8.0+
具體步驟
1.命令行進入MySql
使用 mysql -u#UserName -p#PassWord 命令進入MySql
#UserName 代表你的MySql用戶名
#PassWord 代表你的MySql密碼
??本狗的用戶名是root,密碼是root
mysql -uroot -proot
2.進入數據庫
如果沒有創建數據庫則先使用命令,若已存在數據庫則跳過此步驟
create database #databaseName;
#databaseName 代表你操作的數據庫
??本狗要創建的是b2b數據庫,切記加上分號;
create database b2b;
use databaseName;
#databaseName 代表你操作的數據庫
??本狗要操作的是b2b數據庫,切記加上分號;
use b2b;
3.創建用戶
create user '#userName'@'#host' identified by '#passWord';
#userName 代表你要創建的此數據庫的新用戶賬號
#host 代表訪問權限,如下
- %代表通配所有host地址權限(可遠程訪問)
- localhost為本地權限(不可遠程訪問)
- 指定特殊Ip訪問權限 如10.138.106.102
#passWord 代表你要創建的此數據庫的新用密碼
??本狗要創建的用戶是testUser,密碼是Haier...123,并且可遠程訪問
??密碼強度需要大小寫及數字字母,否則會報密碼強度不符合
??用戶名如果重復,會報錯ERROR 1396 (HY000): Operation CREATE USER failed for 'testUser'@'%'
create user 'testUser'@'%' identified by 'Haier...123';
4.查看用戶
進入mysql系統數據庫
use mysql;
查看用戶的相關信息
select host, user, authentication_string, plugin from user;
use mysql;
select host, user, authentication_string, plugin from user;
??若展示的信息中有剛加入的用戶testUser,則添加成功。切記查看完要切換回操作的數據庫,本狗需要操作的是b2b
use b2b;
5.用戶授權
grant #auth on #databaseName.#table to '#userName'@'#host';
#auth 代表權限,如下
- all privileges 全部權限
- select 查詢權限
- select,insert,update,delete 增刪改查權限
- select,[...]增...等權限
#databaseName 代表數據庫名
#table 代表具體表,如下
- *代表全部表
- A,B 代表具體A,B表
#userName 代表用戶名
#host 代表訪問權限,如下
- %代表通配所有host地址權限(可遠程訪問)
- localhost為本地權限(不可遠程訪問)
- 指定特殊Ip訪問權限 如10.138.106.102
??本狗賦予b2b數據庫area_code表增刪改差權限
grant select,insert,update,delete on b2b.area_code to 'testUser'@'%';
6.刷新
??切記一定要刷新授權才可生效
flush privileges;
7.查看用戶權限
show grants for '#userName'@'#host';
#userName 代表用戶名
#host 代表訪問權限,如下
- %代表通配所有host地址權限(可遠程訪問)
- localhost為本地權限(不可遠程訪問)
- 指定特殊Ip訪問權限 如10.138.106.102
??本狗要查看的是testUser
show grants for 'testUser'@'%';
8.驗證
使用navicat等可視化工具驗證
9.撤銷權限
revoke #auth on #databaseName.#table from '#userName'@'#host';
#auth 代表權限,如下
- all privileges 全部權限
- select 查詢權限
- select,insert,update,delete 增刪改查權限
- select,[...]增...等權限
#databaseName 代表數據庫名
#table 代表具體表,如下
- *代表全部表
- A,B 代表具體A,B表
#userName 代表用戶名
#host 代表訪問權限,如下
- %代表通配所有host地址權限(可遠程訪問)
- localhost為本地權限(不可遠程訪問)
- 指定特殊Ip訪問權限 如10.138.106.102
??本狗要撤銷testUser用戶對b2b數據庫中的area_code表的增刪改差權限
revoke select,insert,update,delete on b2b.area_code from 'testUser'@'%';
??本狗再查看用戶權限
show grants for 'testUser'@'%';
10.刪除用戶
drop user '#userName'@'#host';
#userName 代表用戶名
#host 代表訪問權限,如下
- %代表通配所有host地址權限(可遠程訪問)
- localhost為本地權限(不可遠程訪問)
- 指定特殊Ip訪問權限 如10.138.106.102
??本狗要刪除用戶是testUser
drop user 'testUser'@'%';
我是JavaDog,謝謝博友耐心看完, 抽空來我狗窩??瞅瞅唄 blog.javadog.net
posted on 2023-03-23 20:06 JavaDog程序狗 閱讀(467) 評論(1) 編輯 收藏 舉報