Mysql5.7新增使用者並授權,Mysql生產環境使用者許可權管理
阿新 • • 發佈:2021-12-31
================================
©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,並允許本地登入
CREATEUSER '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';
3、重新整理許可權
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: 只允許登入--其它什麼也不允許做
七、生產環境資料庫授權建議
八、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");
(時間寶貴,分享不易,捐贈回饋,^_^)
================================
©Copyright 蕃薯耀2021-12-31
https://www.cnblogs.com/fanshuyao/
今天越懶,明天要做的事越多。