@目錄
- 什么是權限
- 有哪些權限
- Mysql8之前
- Mysql8
- 創建角色
- 給角色授權
- 創建用戶, 將權限 授予用戶
- 激活角色
- 洗掉 指定權限
- 洗掉用戶
什么是權限
限制一個用戶能夠做什么事情,在MySQL中,可以設定全域權限,指定資料庫權限,指定表權限,指定欄位權限
有哪些權限
- create:創建資料庫、表或索引權限
- DROP:除資料庫或表權限
- ALTER:ALTER更改表,比如添加欄位、索引等
- DELETE:洗掉資料權限
- INDEX:索引權限
- INSERT:插入權限
- SELECT:查詢權限
- UPDATE:更新權限
- CREATE VIEW:創建視圖權限
- EXECUTE:執行存盤程序權限
Mysql8之前
創建用戶:
create user '用戶名'@'localhost' identified by '密碼';
洗掉用戶:
DROP USER 用戶名稱
分配權限:
GRANT 權限 (columns) ON 資料庫物件 TO 用戶 IDENTIFIED BY "密碼" WITH GRANT OPTION
Mysql8
MySQL8新增了角色(role)的概念,使賬號權限的管理,更加靈活方便, 角色,就是一些權限的集合,然后再把角色授權給某個賬戶
創建角色
create role 'app_dev','app_read','app_write';
查詢授權情況
show grants for 'app_dev';

USAGE “無權限”
就是讓你這個用戶可以像個用戶似的登錄,但是除了能看到有哪些資料庫外,什么權限也沒有
創建的角色也和賬號一樣保存在mysql.user表中
select * from mysql.user;
給角色授權
給指定角色權限
grant select,insert,update,delete on *.* to app_dev;
grant select on mydb.* to app_read;
grant insert,update,delete on mydb.* to app_write;
創建用戶, 將權限 授予用戶
- 創建用戶
create user myuser2 identified with mysql_native_password by 'myuser2';
- 分配角色
grant app_write to myuser2;
- 查詢用戶對應的角色
show grants for myuser1;

看到的是角色,并不是具體的權限
如果要查看具體的權限則需要這樣執行show grants
show grants for myuser2 using app_dev
通過使用using app_dev,會將賬號和角色的權限一并顯示
4. 可以繼續給角色添加權限
grant create on mydb.* to app_dev;
激活角色
查看當前角色
select current_role()
激活指定用戶授權的所有角色
set default role all to myuser1
洗掉 指定權限
revoke create on sys.* from '角色名稱'@'127.0.0.1';
revoke all on sys.* from 'app_dev'@'127.0.0.1';
洗掉用戶
drop user '用戶名'@'127.0.0.1';
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/48506.html
標籤:MySQL
上一篇:mysql事務操作
下一篇:mysql的索引
