MySQL 使用者管理與許可權管理
MySQL 使用者管理與許可權管理
-- 操作環境
mysql> show variables like 'version';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| version | 5.6.25 |
+---------------+--------+
1 row in set (0.04 sec)
背景知識補充:
user 表中 host 列的值的意義
% 匹配所有主機
localhost localhost 不會被解析成 IP 地址,直接透過 UNIXsocket 連線
127.0.0.1 會透過 TCP/IP 協議連線,並且只能在本機訪問;
::1 ::1 就是相容支援 ipv6 的,表示同 ipv4 的 127.0.0.1
一: 使用者管理
1. 檢視使用者
mysql> select host,user,password from mysql.user where user like 'andy';
2. 建立資料庫使用者
--指定密碼建立新使用者,%表示任意,即 andy02 可以從任意主機訪問資料庫
mysql> create user 'andy02'@'%' identified by 'oracle';
Query OK, 0 rows affected (0.03 sec)
3. 使用者改密碼
mysql> set password for andy02=password('mysql');
mysql> flush privileges;
4.刪除使用者
--檢視當前系統中已存在的使用者
mysql> select user,host,Password from mysql.user;
--使用drop user命令刪除使用者
mysql> drop user 'andy02'@'%'; 注意:如果不指定 @'%' ,預設預設,則刪除的是 '%' 。
mysql> select user,host,Password from mysql.user where user like 'andy%';
Empty set (0.00 sec)
5. 重新命名帳戶
--rename user命令
mysql> rename user 'andy02'@'%' to 'andy01'@'%';
Query OK, 0 rows affected (0.00 sec)
--檢查
mysql> select user,host,Password from mysql.user where user like 'andy%';
二:許可權管理
注意:mysql的許可權相對於oracle而言,相對簡單,而且也沒有涉及到角色方面的定義與配置
--grant命令語法
1. 許可權種類
(這裡直接檢視,root賬戶所有的許可權)
mysql> select * from mysql.user where user='root' and host='%'\G;
*************************** 1. row ***************************
Host: %
User: root
Password: *2447D497B9A6A15F2776055CB2D1E9F86758182F
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string:
password_expired: N
1 row in set (0.00 sec)
2. 許可權存放
MySQL 伺服器透過 MySQL 許可權表來控制使用者對資料庫的訪問,MySQL 許可權表存放在 mysql 資料庫裡,由 mysql_install_db 指令碼初
始化。這些 MySQL 許可權表分別 user,db,table_priv,columns_priv 和 host。
user 許可權表:記錄允許連線到伺服器的使用者帳號資訊,裡面的許可權是全域性級的。
db 許可權表:記錄各個帳號在各個資料庫上的操作許可權。
table_priv 許可權表:記錄資料表級的操作許可權。
columns_priv 許可權表:記錄資料列級的操作許可權。
host 許可權表:配合 db 許可權表對給定主機上資料庫級操作許可權作更細緻的控制。這個許可權表不受 GRANT 和 REVOKE 語句的影響。
3. 許可權範圍 priv_level:
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
4. 授權
mysql>grant all privileges on *.* to 'andy01'@'%'; (--WITH GRANT OPTION 是否傳遞,預設為不傳遞)
mysql>flush privileges;
5. 檢視當前使用者的許可權
mysql> show grants;
6. 檢視指定使用者的許可權
-- 操作環境
mysql> show variables like 'version';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| version | 5.6.25 |
+---------------+--------+
1 row in set (0.04 sec)
背景知識補充:
user 表中 host 列的值的意義
% 匹配所有主機
localhost localhost 不會被解析成 IP 地址,直接透過 UNIXsocket 連線
127.0.0.1 會透過 TCP/IP 協議連線,並且只能在本機訪問;
::1 ::1 就是相容支援 ipv6 的,表示同 ipv4 的 127.0.0.1
一: 使用者管理
1. 檢視使用者
mysql> select host,user,password from mysql.user where user like 'andy';
2. 建立資料庫使用者
--指定密碼建立新使用者,%表示任意,即 andy02 可以從任意主機訪問資料庫
mysql> create user 'andy02'@'%' identified by 'oracle';
Query OK, 0 rows affected (0.03 sec)
3. 使用者改密碼
mysql> set password for andy02=password('mysql');
mysql> flush privileges;
4.刪除使用者
--檢視當前系統中已存在的使用者
mysql> select user,host,Password from mysql.user;
--使用drop user命令刪除使用者
mysql> drop user 'andy02'@'%'; 注意:如果不指定 @'%' ,預設預設,則刪除的是 '%' 。
mysql> select user,host,Password from mysql.user where user like 'andy%';
Empty set (0.00 sec)
5. 重新命名帳戶
--rename user命令
mysql> rename user 'andy02'@'%' to 'andy01'@'%';
Query OK, 0 rows affected (0.00 sec)
--檢查
mysql> select user,host,Password from mysql.user where user like 'andy%';
二:許可權管理
注意:mysql的許可權相對於oracle而言,相對簡單,而且也沒有涉及到角色方面的定義與配置
--grant命令語法
1. 許可權種類
(這裡直接檢視,root賬戶所有的許可權)
mysql> select * from mysql.user where user='root' and host='%'\G;
*************************** 1. row ***************************
Host: %
User: root
Password: *2447D497B9A6A15F2776055CB2D1E9F86758182F
Select_priv: Y
Insert_priv: Y
Update_priv: Y
Delete_priv: Y
Create_priv: Y
Drop_priv: Y
Reload_priv: Y
Shutdown_priv: Y
Process_priv: Y
File_priv: Y
Grant_priv: Y
References_priv: Y
Index_priv: Y
Alter_priv: Y
Show_db_priv: Y
Super_priv: Y
Create_tmp_table_priv: Y
Lock_tables_priv: Y
Execute_priv: Y
Repl_slave_priv: Y
Repl_client_priv: Y
Create_view_priv: Y
Show_view_priv: Y
Create_routine_priv: Y
Alter_routine_priv: Y
Create_user_priv: Y
Event_priv: Y
Trigger_priv: Y
Create_tablespace_priv: Y
ssl_type:
ssl_cipher:
x509_issuer:
x509_subject:
max_questions: 0
max_updates: 0
max_connections: 0
max_user_connections: 0
plugin: mysql_native_password
authentication_string:
password_expired: N
1 row in set (0.00 sec)
2. 許可權存放
MySQL 伺服器透過 MySQL 許可權表來控制使用者對資料庫的訪問,MySQL 許可權表存放在 mysql 資料庫裡,由 mysql_install_db 指令碼初
始化。這些 MySQL 許可權表分別 user,db,table_priv,columns_priv 和 host。
user 許可權表:記錄允許連線到伺服器的使用者帳號資訊,裡面的許可權是全域性級的。
db 許可權表:記錄各個帳號在各個資料庫上的操作許可權。
table_priv 許可權表:記錄資料表級的操作許可權。
columns_priv 許可權表:記錄資料列級的操作許可權。
host 許可權表:配合 db 許可權表對給定主機上資料庫級操作許可權作更細緻的控制。這個許可權表不受 GRANT 和 REVOKE 語句的影響。
3. 許可權範圍 priv_level:
*
| *.*
| db_name.*
| db_name.tbl_name
| tbl_name
| db_name.routine_name
4. 授權
mysql>grant all privileges on *.* to 'andy01'@'%'; (--WITH GRANT OPTION 是否傳遞,預設為不傳遞)
mysql>flush privileges;
5. 檢視當前使用者的許可權
mysql> show grants;
6. 檢視指定使用者的許可權
mysql> show grants for 'andy01'@'%';
-- revoke 收回許可權
撤銷與授權的許可權方式基本類似,這裡不做討論。來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2136075/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL使用者與許可權管理MySql
- mysql使用者許可權管理MySql
- MySQL 使用者及許可權管理?MySql
- MySQL使用者及許可權管理MySql
- Mysql——許可權管理MySql
- Mysql 許可權管理MySql
- MySQL許可權管理MySql
- MySQL-03.使用者管理和許可權管理MySql
- MongoDB 使用者與許可權管理MongoDB
- mysql 使用者及許可權管理 小結MySql
- mysql 使用者管理和許可權設定MySql
- MySQL許可權管理實戰MySql
- 關於mysql許可權管理MySql
- Oracle 使用者許可權管理與常用許可權資料字典列表Oracle
- ORACLE使用者管理與許可權設定Oracle
- 使用者物件許可權管理物件
- Oracle使用者許可權管理Oracle
- 【許可權管理】Oracle中檢視、回收使用者許可權Oracle
- MySQL資料庫許可權體系入門(3)---管理使用者許可權MySql資料庫
- mysql 管理:mysql 執行許可權(轉)MySql
- 【使用者管理】oracle使用者、角色、許可權管理Oracle
- Oracle11g 使用者與許可權管理Oracle
- 使用者許可權系統管理
- Oracle使用者角色許可權管理Oracle
- Oracle使用者、許可權、角色管理Oracle
- MySQL之許可權管理和備份MySql
- MySQL5.7&8.0許可權-角色管理MySql
- PostgreSQL:許可權管理SQL
- oracle 許可權管理Oracle
- 4、許可權管理
- sql許可權管理SQL
- 許可權管理策略
- Linux命令-使用者、許可權管理、系統管理Linux
- Linux使用者、組、許可權管理Linux
- 使用者角色許可權管理架構架構
- 使用者及檔案許可權管理
- Oracle使用者、許可權、角色管理【轉】Oracle
- Linux-許可權管理(ACL許可權)Linux