码迷,mamicode.com
首页 > 数据库 > 详细

mysql的权限管理

时间:2018-03-23 11:43:27      阅读:233      评论:0      收藏:0      [点我收藏+]

标签: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

可以见删除和创建的权限都没有啦。

mysql的权限管理

标签:mysql

原文地址:http://blog.51cto.com/caimengzhi/2090148

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!