mysql 的dcl语句_详解MySQL第三篇—DCL语句

DCL(Data Control Language)语句:数据控制语句,用于控制不同数据段直接的许可和访问级别的语句。这些语句定义了数据库、表、字段、用户的访问权限和安全级别。主要的语句关键字包括 grant、revoke 等。

DCL 语句主要是 DBA 用来管理系统中的对象权限时所使用,一般的开发人员很少使用。下面通过一个例子来简单说明一下。

创建一个数据库用户 z1,具有对 sakila 数据库中所有表的 SELECT/INSERT 权限:

1

2

3

4

5

6

7

8

9

10

11

12

mysql> grant select,insert on sakila.* to 'z1'@'localhost' identified by '123';

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

[mysql@db3 ~]$ mysql -uz1 -p123

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 21671 to server version: 5.1.9-beta-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use sakila

Database changed

mysql> insert into emp values('bzshen','2005-04-01',3000,'3');

Query OK, 1 row affected (0.04 sec)

由于权限变更,需要将 z1 的权限变更,收回 INSERT,只能对数据进行 SELECT 操作:

1

2

3

4

5

6

7

8

[mysql@db3 ~]$ mysql -uroot

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 21757 to server version: 5.1.9-beta-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> revoke insert on sakila.* from 'z1'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> exit

Bye

用户 z1 重新登录后执行前面语句:

1

2

3

4

5

6

7

8

9

10

[mysql@db3 ~]$ mysql -uz1 -p123

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 21763 to server version: 5.1.9-beta-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> insert into emp values('bzshen','2005-04-01',3000,'3');

ERROR 1046 (3D000): No database selected

mysql> use sakila

Database changed

mysql> insert into emp values('bzshen','2005-04-01',3000,'3');

ERROR 1142 (42000): INSERT command denied to user 'z1'@'localhost' for table 'emp'

以上例子中的 grant 和 revoke 分别授出和收回了用户 z1 的部分权限,达到了我们的目的。

[深入学习Web安全](5)详解MySQL注射

[深入学习Web安全](5)详解MySQL注射 0x00 目录 0x00 目录 0x01 MySQL注射的简单介绍 0x02 对于information_schema库的研究 0x03 注射第一步—— ...

Mysql常用show命令,show variables like xxx 详解,mysql运行时参数

MySQL中有很多的基本命令,show命令也是其中之一,在很多使用者中对show命令的使用还容易产生混淆,本文汇集了show命令的众多用法. 详细: http://dev.mysql.com/doc/ ...

MySQL存储过程详解 mysql 存储过程

你可能感兴趣的:(mysql,的dcl语句)