MySQL8.0 建立用戶及受權

何時會用到

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

mysql版本

MySql8.0+mysql

具體步驟

1.命令行進入MySql

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

#UserName 表明你的MySql用戶名

#PassWord 表明你的MySql密碼sql

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

mysql -uroot -proot
複製代碼
命令行進入MySql.png
命令行進入MySql.png

2.進入數據庫

若是沒有建立數據庫則先使用命令,若已存在數據庫則跳過此步驟 app

create database #databaseName;ide

#databaseName 表明你操做的數據庫工具

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

create database b2b;
複製代碼

use databaseName;命令行

#databaseName 表明你操做的數據庫3d

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

use b2b;
複製代碼
進入數據庫.png
進入數據庫.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
建立用戶.png

4.查看用戶

進入mysql系統數據庫

user mysql;

查看用戶的相關信息

select host, user, authentication_string, plugin from user;

user mysql; 
select host, user, authentication_string, plugin from user;
複製代碼

🐶若展現的信息中有剛加入的用戶testUser,則添加成功。切記查看完要切換回操做的數據庫,本狗須要操做的是b2b

use b2b; 
複製代碼
查看用戶.png
查看用戶.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
用戶受權.png

6.刷新

🔥切記必定要刷新受權纔可生效

flush privileges;

刷新.png
刷新.png

7.查看用戶權限

show grants for '#userName'@'#host';

#userName 表明用戶名

#host 表明訪問權限,以下

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

🐶本狗要查看的是testUser

show grants for 'testUser'@'%';
複製代碼
查看用戶權限.png
查看用戶權限.png

8.驗證

使用navicat等可視化工具驗證

驗證.png
驗證.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
撤銷權限.png

10.刪除用戶

drop user '#userName'@'#host';

#userName 表明用戶名

#host 表明訪問權限,以下

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

🐶本狗要刪除用戶是testUser

drop user 'testUser'@'%';
複製代碼
刪除用戶.png
刪除用戶.png

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

相關文章
相關標籤/搜索