MySQL建立使用者並修改許可權
阿新 • • 發佈:2021-06-30
建立使用者
- 登入MysQL命令列
mysql -u root -p
- 建立新使用者
# 在MySQL命令列輸入以下語句(需要先替換引數)
# ${user}表示使用者名稱
# ${host}表示允許登入的IP地址,輸入'127.0.0.1'表示只能在本機登入,輸入'%'表示不限制
# ${password}表示密碼
# 例:CREATE USER 'reader'@'%' IDENTIFIED BY '123456';
CREATE USER '${user}'@'${host}' IDENTIFIED BY '${password}';
- 給使用者授權
# 在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;