天天看點

Mysql5.7新增使用者并授權,Mysql生産環境使用者權限管理

================================

©Copyright 蕃薯耀 2021-12-31

https://www.cnblogs.com/fanshuyao/

一、root使用者授權

root使用者授權,用于指定IP使用者登入root使用者,友善管理

1、建立指定IP(如:192.168.1.100)遠端登入的root使用者,并設定密碼

CREATE USER 'root'@'192.168.1.100' IDENTIFIED BY '密碼';      

2、root使用者指定IP授權,授予所有權限

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' WITH GRANT OPTION;      

WITH GRANT OPTION:表示該使用者可以将自己擁有的權限授權給别人

授權指令:

GRANT privileges ON databasename.tablename TO 'username'@'host';
 
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;      

3、重新整理權限

FLUSH PRIVILEGES;      

二、建立appUser應用程式使用者,并授權

1、建立appUser,并允許本地登入

CREATE USER 'appUser'@'localhost' IDENTIFIED BY '密碼';      

2、建立appUser,允許應用程式伺服器登入

CREATE USER 'appUser'@'192.168.2.200' IDENTIFIED BY '密碼';      

3、建立appUser,允許指定IP使用者(192.168.1.100)登入

CREATE USER 'appUser'@'192.168.1.100' IDENTIFIED BY '密碼';      

4、appUser授權

(正式環境沒有drop權限),報錯時:記得先建立資料庫和表

GRANT ALTER,CREATE,SELECT,INSERT,UPDATE,DELETE,
CREATE ROUTINE,ALTER ROUTINE,EXECUTE,INDEX,CREATE VIEW,SHOW VIEW,REFERENCES
 ON 資料庫名稱.* TO 'appUser';      

5、重新整理權限

FLUSH PRIVILEGES;      

三、建立readUser隻讀使用者,并授權

1、建立readUser使用者,并設定密碼,允許所有地方登入

CREATE USER 'readUser'@'%' IDENTIFIED BY '密碼';      

2、授權,授予查詢表、查詢視圖的權限

GRANT SELECT,SHOW VIEW ON 資料庫名稱.* TO 'readUser';      
FLUSH PRIVILEGES;      

四、Mysql檢視使用者的權限

SHOW GRANTS FOR 'root'@'localhost';
SHOW GRANTS FOR 'root'@'192.168.1.100';
SHOW GRANTS FOR 'appUser';
SHOW GRANTS FOR 'readUser'@'%';      

五、Mysql檢視使用者表

use mysql;
 
select * from user;      

六、Mysql資料庫權限清單

ALTER:    Allows use of ALTER TABLE.修改表
CREATE:    Allows use of CREATE TABLE.建立表
CREATE TEMPORARY TABLES:    Allows use of CREATE TEMPORARY TABLE.建立臨時表
DROP:        Allows use of DROP TABLE.删除表,删除資料表或資料庫
SELECT:    Allows use of SELECT. 查詢
INSERT:    Allows use of INSERT. 插入
UPDATE:    Allows use of UPDATE. 更新
DELETE:    Allows use of DELETE.删除表資料
EXECUTE:    Allows the user to run stored routines. 執行存儲過程
INDEX:    Allows use of CREATE INDEX and DROP INDEX.建立和删除索引
CREATE VIEW:    Allows use of CREATE VIEW.建立視圖
SHOW VIEW:    Allows use of SHOW CREATE VIEW.檢視建立的視圖
REFERENCES:    授予使用者可以建立一個外鍵來參照特定資料表的權限。
CREATE ROUTINE:表示授予使用者可以為特定的資料庫建立存儲過程和存儲函數的權限。
ALTER ROUTINE:表示授予使用者可以更新和删除資料庫中已有的存儲過程和存儲函數的權限。
ALL 或 ALL PRIVILEGES:所有的權限名。(和root一樣)
usage: 隻允許登入--其它什麼也不允許做      

七、生産環境資料庫授權建議

Mysql5.7新增使用者并授權,Mysql生産環境使用者權限管理

八、Mysql回收權限,撤銷使用者權限

回收權限使用:REVOKE

REVOKE privilege ON databasename.tablename FROM 'username'@'host';      

示例:

REVOKE SELECT ON *.* FROM 'appUser'@'localhosts';
 
 
REVOKE ALTER,CREATE,DROP,SELECT,INSERT,UPDATE,DELETE,
CREATE ROUTINE,ALTER ROUTINE,EXECUTE,INDEX,CREATE VIEW,SHOW VIEW,
REFERENCES,CREATE TEMPORARY TABLES 
ON *.* FROM 'appUser';      

重新整理權限

FLUSH PRIVILEGES;      

九、Mysql删除使用者

DROP USER 'username';
 
DROP USER 'username'@'host';      

十、Mysql設定密碼,修改使用者密碼

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');      

如果是目前登入使用者修改密碼可以用:

SET PASSWORD = PASSWORD("newpassword");      

root使用者給其他使用者修改密碼,示例:

SET PASSWORD FOR 'appUser'@'localhost' = PASSWORD("123456");      
Mysql5.7新增使用者并授權,Mysql生産環境使用者權限管理

(時間寶貴,分享不易,捐贈回饋,^_^)

今天越懶,明天要做的事越多。

繼續閱讀