您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“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 grants for 'andy01'@'%';
-- revoke 收回權限
以上是“MySQL如何實現用戶管理與權限管理”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。