MySQL8.0 創建用戶及授權 - 看這篇就足夠了

什麼時候會用到

  • 對接外系統時,需要給其餘系統開放訪問權限
  • 本系統中,分權限管理數據,防止root權限刪庫跑路😂

mysql版本

MySql8.0+

具體步驟

1.命令行進入MySql

使用 mysql -u#UserName -p#PassWord 命令進入MySql

#UserName 代表你的MySql用戶名
#PassWord 代表你的MySql密碼

🐶本狗的用戶名是root,密碼是root

mysql -uroot -proot

命令行進入MySql.png

2.進入數據庫

如果沒有創建數據庫則先使用命令,若已存在數據庫則跳過此步驟

create database #databaseName;

#databaseName 代表你操作的數據庫

🐶本狗要創建的是b2b數據庫,切記加上分號;

create database b2b;

use databaseName;

#databaseName 代表你操作的數據庫

🐶本狗要操作的是b2b數據庫,切記加上分號;

use b2b;

進入數據庫.png

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';

創建用戶.png

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; 

查看用戶.png

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'@'%';

用戶授權.png

6.刷新

🔥切記一定要刷新授權纔可生效

flush privileges;

刷新.png

7.查看用戶權限

show grants for ‘#userName’@’#host’;

#userName 代表用戶名

#host 代表訪問權限,如下

  • %代表通配所有host地址權限(可遠程訪問)
  • localhost爲本地權限(不可遠程訪問)
  • 指定特殊Ip訪問權限 如10.138.106.102

🐶本狗要查看的是testUser

show grants for 'testUser'@'%';

查看用戶權限.png

8.驗證

使用navicat等可視化工具驗證

驗證.png

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'@'%';

撤銷權限.png

10.刪除用戶

drop user ‘#userName’@’#host’;

#userName 代表用戶名

#host 代表訪問權限,如下

  • %代表通配所有host地址權限(可遠程訪問)
  • localhost爲本地權限(不可遠程訪問)
  • 指定特殊Ip訪問權限 如10.138.106.102

🐶本狗要刪除用戶是testUser

drop user 'testUser'@'%';

刪除用戶.png

😂 本文均由JavaDog原創,轉載請標明出處。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章