SQL---DCL语句集合

来源:互联网 发布:怎么在淘宝上面买假证 编辑:程序博客网 时间:2024/05/22 02:02

DCL是数据控制语言(Data Control Language,DCL)。具备控制数据库中数据权限的功能。

  • GRANT   定义权限
GRANT   权限1,权限2...ON    对象类型   对象名TO     用户1,用户2...(WITH GRANT OPTION) ;

   

其语义为,将GRANT子句中指定的某操作对象的权限授予指定的用户。

对于不同类型的数据对象有不同的操作权限,常见的操作权限如下:

常用的操作权限对象对象类型操作权限属性列TABLESELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES视图TABLESELECT,INSERT,UPDATE,DELETE,ALL PRIVILEGES基本表TABLESELECT,INSERT,UPDATE,DELETE,ALTER,INDEX,ALL PRIVILEGES数据库DATABASECREATE TABLE,ALTER TABLE













授权的用户可以是一个或者多个具体的用户,也可以是PUBLIC,即全体用户。

WITH GRANT OPTION 的含义是获得某种权限的用户还可以把这种权限再授予其他用户。如果在定义权限时没有指定WITH GRANT OPTION,则获得某种权限的用户只能使用该权限,但不能传播该权限。

例1:把查询Student表的权限授给用户U1:

GRANT SELECTON TABLE StudentTO U1;

例2:把查询Student表和修改学号的权限授给用户U2:

GRANT UPDATE(Sno),SELECTON TABLE StudentTO U2;

例3:把对表SC的INSERT权限授予U3用户,并允许将此权限再授予其他用户:

GRANT INSERT ON TABLE SC TO U3WITH GRANT OPTION;

  • REVOKE   收回权限

REVOKE 权限1,权限2...ON   对象类型  对象名FROM 用户1,用户2...;

通过REVOKE收回定义的权限。

例1:把用户U2修改学生学号的权限收回:

REVOKE UPDATE(Sno)ON TABLE StudentFROM U2;

例2:把用户U3对SC表的INSERT权限收回:

REVOKE INSERT ON TABLE SC FROM U3;

在收回权限的时候,DBMS采用级联收回的策略,即在收回U3权限的同时也收回了U3授予U4的权限。