1. 程式人生 > 其它 >MySQL建立使用者並修改許可權

MySQL建立使用者並修改許可權

建立使用者

  1. 登入MysQL命令列
mysql -u root -p
  1. 建立新使用者
# 在MySQL命令列輸入以下語句(需要先替換引數)
# ${user}表示使用者名稱
# ${host}表示允許登入的IP地址,輸入'127.0.0.1'表示只能在本機登入,輸入'%'表示不限制
# ${password}表示密碼
# 例:CREATE USER 'reader'@'%' IDENTIFIED BY '123456';
CREATE USER '${user}'@'${host}' IDENTIFIED BY '${password}';
  1. 給使用者授權
# 在MySQL命令列輸入以下語句(需要先替換引數)
# SELECT,SHOW VIEW:表示只讀許可權。ALL表示全部許可權。其他許可權參考:https://www.jianshu.com/p/dedb0467e3e2
# ${database_name}表示資料庫名稱,輸入'*.*'表示全部。
# 例:GRANT SELECT,SHOW VIEW ON mall.* TO 'reader'@'%' IDENTIFIED BY '123456';
GRANT SELECT,SHOW VIEW ON ${database_name}.* TO '${user}'@'${host}' IDENTIFIED BY '${password}';

# 重新整理許可權
FLUSH PRIVILEGES;

許可權相關

檢視

  • 檢視當前登入使用者的許可權
SHOW GRANTS;
  • 檢視指定使用者的許可權
SHOW GRANTS FOR 'example_user';

輸出如下:

+-----------------------------------------------------+
| Grants for reader@%                                 |
+-----------------------------------------------------+
| GRANT USAGE ON *.* TO 'reader'@'%'                  |
| GRANT SELECT, SHOW VIEW ON `mall`.* TO 'reader'@'%' |
+-----------------------------------------------------+

授予許可權

  • 授予許可權給指定使用者
GRANT ALL ON example_database.* TO 'example_user'@'%';
  • 授予許可權給指定使用者,且該使用者可以把許可權授予其他使用者
GRANT ALL ON example_database.* TO 'example_user'@'%' WITH GRANT OPTION;
  • 授予只讀許可權
GRANT SELECT,SHOW VIEW ON example_database TO 'example_user'@'%';
  • 授權指定使用者的指定資料庫(表)的許可權
GRANT SELECT ON example_database TO 'example_user'@'%';
GRANT INSERT ON example_database.example_table TO 'example_user'@'%';

移除許可權

  • 移除許可權
REVOKE ALL ON example_database FROM 'example_user'@'%';
  • 移除全部許可權
# 1. 列出該使用者的許可權
SHOW GRANTS FOR 'example_user';
	+-----------------------------------------------------+
	| Grants for reader@%                                 |
	+-----------------------------------------------------+
	| GRANT USAGE ON *.* TO 'reader'@'%'                  |
	| GRANT SELECT, SHOW VIEW ON `mall`.* TO 'reader'@'%' |
	+-----------------------------------------------------+

# 2. 複製許可權到命令列,把'GRANT'改為'REVOKE',把'TO'改為'FROM':
REVOKE SELECT, SHOW VIEW ON `mall`.* FROM 'reader'@'%';

# 3. 重新整理許可權
FLUSH PRIVILEGES;