環境: MySQL 5.7.26
1.添加賬號.
CREATE user '用戶名'@'作用域' IDENTIFIED BY '密碼';
所述作用域localhost代表本地 ,%代表任意主機,若開啟遠程訪問,示例如下
CREATE user 'user'@'%' IDENTIFIED BY 'password'; #新增用戶user密碼為password可以在任意主機登陸
2.刪除賬號
DROP user '用戶名'@'作用域';
3.用戶授權
GRANT ALL PRIVILEGES ON '數據庫'.* TO '用戶名'@'作用域'; #添加用戶某個數據庫所有權限
#GRANT ALL PRIVILEGES ON *.* TO '用戶名'@'作用域'; #添加用戶所有權限
FLUSH PRIVILEGES; #刷新系統權限表,使權限生效
4.取消授權
同上,若指定某個數據庫,則取消指定數據庫的所有授權,若使用*通配,則取消所有授權
REVOKE ALL PRIVILEGES ON '數據庫'.* FROM '用戶名'@'作用域';
FLUSH PRIVILEGES;
5.查看權限
SHOW GRANTS FOR '用戶名'@'作用域';
權限整理如下:
ALL或ALL PRIVILEGES 代表指定權限等級的所有權限。
ALTER 允許使用ALTER TABLE來改變表的結構,ALTER TABLE同時也需要CREATE和INSERT權限。重命名一個表需要對舊表具有ALTER和DROP權限,對新表具有CREATE和INSERT權限。
ALTER ROUTINE 允許改變和刪除存儲過程和函數
CREATE 允許創建新的數據庫和表
CREATE ROUTINE 允許創建存儲過程和包
CREATE TABLESPACE 允許創建、更改和刪除表空間和日志文件組
CREATE TEMPORARY TABLES 允許創建臨時表
CREATE USER 允許更改、創建、刪除、重命名用戶和收回所有權限
CREATE VIEW 允許創建視圖
DELETE 允許從數據庫的表中刪除行
DROP 允許刪除數據庫、表和視圖
EVENT 允許在事件調度里面創建、更改、刪除和查看事件
EXECUETE 允許執行存儲過程和包
FILE 允許在服務器的主機上通過LOAD DATA INFILE、SELECT ... INTO OUTFILE和LOAD_FILE()函數讀寫文件
GRANT OPTION 允許向其他用戶授予或移除權限
INDEX 允許創建和刪除索引
INSERT 允許向數據庫的表中插入行
LOCK TABLE 允許執行LOCK TABLES語句來鎖定表
PROCESS 允許顯示在服務器上執行的線程信息,即被會話所執行的語句信息。這個權限允許你執行SHOW PROCESSLIST和mysqladmin processlist命令來查看線程,同時這個權限也允許你執行SHOW ENGINE命令
PROXY 允許用戶冒充成為另外一個用戶
REFERENCES 允許創建外鍵
RELOAD 允許使用FLUSH語句
REPLICATION CLIENT 允許執行SHOW MASTER STATUS,SHOW SLAVE STATUS和SHOW BINARY LOGS命令
REPLICATION SLAVE 允許SLAVE服務器連接到當前服務器來作為他們的主服務器
SELECT 允許從數據庫中查詢表
SHOW DATABASES 允許賬戶執行SHOW DATABASE語句來查看數據庫。沒有這個權限的賬戶只能看到他們具有權限的數據庫。
SHOW VIEW 允許執行SHOW CREATE VIEW語句
SHUTDOWN 允許執行SHUTDOWN語句和mysqladmin shutdown已經mysql_shutdown() C API函數
SUPER 允許用戶執行CHANGE MASTER TO,KILL或mysqladmin kill命令來殺掉其他用戶的線程,允許執行PURGE BINARY LOGS命令,通過SET GLOBAL來設置系統參數,執行mysqladmin debug命令,開啟和關閉日志,即使read_only參數開啟也可以執行update語句,打開和關閉從服務器上面的復制,允許在連接數達到max_connections的情況下連接到服務器。
TRIGGER 允許操作觸發器
UPDATE 允許更新數據庫中的表
USAGE 代表沒有任何權限,只能登陸
參考自:MySQL官方權限說明文檔