SQL---DCL语句集合

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 SELECT
ON TABLE Student
TO U1;

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

GRANT UPDATE(Sno),SELECT
ON TABLE Student
TO U2;

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

GRANT INSERT 
ON TABLE SC 
TO U3
WITH GRANT OPTION;

  • REVOKE   收回权限

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

通过REVOKE收回定义的权限。

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

REVOKE UPDATE(Sno)
ON TABLE Student
FROM U2;

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

REVOKE INSERT 
ON TABLE SC 
FROM U3;

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

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验三(2) SQL语言DCL 一、实验目的 SQL的数据控制通过DCL(数据控制语言) 实现。DCL通过对数据库用户的授权和收权命令来实现有关数据的存取控制,以保证数据库的安全性。 本次实验了解DCL语言的GRANT和REVOKE语句数据库存取权限的控制,学会SQL Server 2000的查询分析器中用DCL语言数据库存取权限进行设定。 本实验需要2学时。 二、实验内容 1.创建新的数据库用户 2.用GRANT语句数据库存取权限进行授权操作,语法格式如下: GRANT <特权组> To <用户组>|PUBLIC PUBLIC指数据库的所有用户。 3.用REVOKE语句将DBA(数据库管理员)、DBO(建库用户)授与其它用户对数据库的操作权收回,语法格式如下: REVOKE <权限组>|ALL PRIVILEGES [ON <对象名>] FROM <用户组名>|PUBLIC 三、实验任务 1. 创建新的数据库用户 要在STUDENTS数据库中创建一个“user0”数据库用户,可以按下面的步骤创建新数据库用户。 1) 在企业管理器中扩展SQL服务器及数据库文件夹。用鼠标右键单击用户 文件夹,弹出一个快捷菜单,在弹出的菜单中选择“新建数据库用户”项,会出现对话框。 2) 在对话框的登录名栏中选择一个SQL服务器登陆名和用户名。(选新建) 3) 单击“确定”按钮。 2.打开数据库SQL Server 2000的查询分析器,用新建的用户user0进行登录。 3.在查询分析器中,对STUDENTS中的表进行操作:查询(SELECT)等。会出现提示如图3:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值