mysql的權限管理

mysql的權限授予於回收

人生最大的困難就是懶。

開始躁動起來。有關mysql的權限授予於回收

用戶權限管理主要有以下作用:
1. 可以限制用戶訪問哪些庫、哪些表
2. 可以限制用戶對哪些表執行SELECT、CREATE、DELETE、DELETE、ALTER等操作
3. 可以限制用戶登錄的IP或域名
4. 可以限制用戶自己的權限是否可以授權給別的用戶


1. 查看當前系統中的用戶

mysql> select host,user from mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | root             |
| %         | test             |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
6 rows in set (0.00 sec)

2. 授予權限

mysql> grant all on *.* to cmz@'%' identified by 'cmz';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> select host,user from mysql.user;
+-----------+------------------+
| host      | user             |
+-----------+------------------+
| %         | cmz              |
| %         | root             |
| %         | test             |
| localhost | debian-sys-maint |
| localhost | mysql.session    |
| localhost | mysql.sys        |
| localhost | root             |
+-----------+------------------+
7 rows in set (0.00 sec)

mysql> flush privileges;  # 刷新
Query OK, 0 rows affected (0.00 sec)
  • all privileges:表示將所有權限授予給用戶。也可指定具體的權限,如:SELECT、CREATE、DROP等。

  • on:表示這些權限對哪些數據庫和表生效,格式:數據庫名.表名,這裏寫“*”表示所有數據庫,所有表。如果我要指定將權限應用到test庫的user表中,可以這麼寫:test.user

  • to:將權限授予哪個用戶。格式:”用戶名”@”登錄IP或域名”。%表示沒有限制,在任何主機都可以登錄。比如:'leco'@'192.168.0.%',表示leco這個用戶只能在192.168.0 IP段登錄

  • identified by:指定用戶的登錄密碼

  • with grant option:表示允許用戶將自己的權限授權給其它用戶

可以使用GRANT給用戶添加權限,權限會自動疊加,不會覆蓋之前授予的權限,比如你先給用戶添加一個SELECT權限,後來又給用戶添加了一個INSERT權限,那麼該用戶就同時擁有了SELECT和INSERT權限。

用戶詳情的權限列表請參考MySQL官網說明:http://dev.mysql.com/doc/refman/5.7/en/privileges-provided.html

3. 查看授予的權限

mysql> show grants for cmz;
+------------------------------------------+
| Grants for cmz@%                         |
+------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO 'cmz'@'%' |
+------------------------------------------+
1 row in set (0.00 sec)

4. 回收權限

mysql> revoke delete,create on *.* from cmz;
Query OK, 0 rows affected (0.00 sec)
mysql> show grants for cmz\G;
*************************** 1. row ***************************
Grants for cmz@%: GRANT SELECT, INSERT, UPDATE, DROP, RELOAD, SHUTDOWN, PROCESS, FILE, REFERENCES, INDEX, ALTER, SHOW DATABASES, SUPER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, REPLICATION SLAVE, REPLICATION CLIENT, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, CREATE USER, EVENT, TRIGGER, CREATE TABLESPACE ON *.* TO 'cmz'@'%'
1 row in set (0.00 sec)
ERROR: 
No query specified

可以見刪除和創建的權限都沒有啦。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章