mysql的權限管理

mysql的權限授予於回收html

人生最大的困難就是懶。mysql

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

用戶權限管理主要有如下做用:
1. 能夠限制用戶訪問哪些庫、哪些表
2. 能夠限制用戶對哪些表執行SELECT、CREATE、DELETE、DELETE、ALTER等操做
3. 能夠限制用戶登陸的IP或域名
4. 能夠限制用戶本身的權限是否能夠受權給別的用戶數據庫


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

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. 授予權限session

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等。ide

  • on:表示這些權限對哪些數據庫和表生效,格式:數據庫名.表名,這裏寫「*」表示全部數據庫,全部表。若是我要指定將權限應用到test庫的user表中,能夠這麼寫:test.userspa

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

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

  • 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

能夠見刪除和建立的權限都沒有啦。

相關文章
相關標籤/搜索