說說 MySQL 權限

這篇說說 MySQL 權限管理。

MySQL 從用戶、密碼和IP三個維度來管理用戶鏈接的。

1. 創(chuàng)建用戶

先看一個示例:

# 創(chuàng)建 david 用戶,密碼為 123, 101.32.19.* 可以訪問
mysql> create user 'david'@'101.32.19.%' identified by '123'; 
# 當然也可以在創(chuàng)建用戶時,先不設定密碼
mysql> create user 'david'@'101.32.19.%';

以上腳本就是創(chuàng)建 david 的用戶,密碼是 123,且只能是 101.32.19.* 網段的 IP 能訪問。

剛剛創(chuàng)建的用戶只有鏈接權限:

(root@localhost) [mysql]> show grants for 'david'@'101.32.19.%';
+---------------------------------------------+
| Grants for david@101.32.19.%                |
+---------------------------------------------+
| GRANT USAGE ON *.* TO `david`@`101.32.19.%` |
+---------------------------------------------+
1 row in set (0.00 sec)

2. 修改用戶密碼

# 修改用戶密碼
(root@localhost) [(none)]> alter user 'david'@'101.32.19.%' identified by '456';

3. 授權

授權是指給予 MySQL 用戶一定的權限。新創(chuàng)建的用戶只有鏈接權限,無創(chuàng)建表等權限。

mysql> grant select, update, insert, delete on test.* to 'david'@'10.0.4.%' [with grant option];

授予 'david'@'101.32.19.%' 用戶針對 mysql 庫中所有表的增刪查改權限。with grant option 表示 david 用戶還可以給其他用戶授予他擁有的權限。

再次查看其權限:

(root@localhost) [(none)]> show grants for 'david'@'101.32.19.%';
+----------------------------------------------------------------------------+
| Grants for david@101.32.19.%                                               |
+----------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO `david`@`101.32.19.%`                                |
| GRANT SELECT, INSERT, UPDATE, DELETE ON `mysql`.* TO `david`@`101.32.19.%` |
+----------------------------------------------------------------------------+
2 rows in set (0.00 sec)

4. 回收權限

示例:回收 david 用戶的增刪改查權限:

(root@localhost) [(none)]> revoke select, insert, update, delete on mysql.* from 'david'@'101.32.19.%';
Query OK, 0 rows affected (0.01 sec)

# 也可以回收所有權限,但是不刪除用戶
mysql> revoke all on *.* from 'david'@'101.32.19.%';

# 仍然具有鏈接權限
(root@localhost) [(none)]> show grants for 'david'@'101.32.19.%';
+---------------------------------------------+
| Grants for david@101.32.19.%                |
+---------------------------------------------+
| GRANT USAGE ON *.* TO `david`@`101.32.19.%` |
+---------------------------------------------+
1 row in set (0.00 sec)

5. 刪除用戶

mysql> drop user 'david'@'101.32.19.%';  # 刪除用戶 david

以上是最基本的 MySQL 權限管理,當然 MySQL 的權限管理內容還有很多,權限還可以設置的很細致。具體可以參考 mysql 庫中相應的表。附表如下:

序號 作用
1 user 控制用戶的鏈接等權限
2 db 控制用戶對于某個數(shù)據(jù)庫的權限
3 tables_priv 控制用戶對于某張表的權限
4 columns_priv 控制用戶對于表中某列的權限

至此,MySQL 常用的權限管理說完了,下一篇說一款 MySQL 的插件,敬請期待......

大家加油?。。?/strong>

下面是廣告時間,關注 “老劉說技術” 獲取更多教程

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容