文档详情

数据库原理及应用SQL-Server 第10章 数据库管理.ppt

发布:2021-09-18约1.81万字共70页下载文档
文本预览下载声明
* */69 授予用户或角色权限(2) GRANT 语句的完整语法非常复杂。其简化语句格式为: GRANT [ALL[PRIVILEGES]]|权限[, … n] [(列名[, … n])] ON 表|视图 |表|视图[(列名[, … n] |ON 存储过程|用户定义函数 TO 用户|登录帐户[, … n] [WITH GRANT OPTION] [AS 组|角色] PRIVILEGES:包含此参数是为了符合 ISO 标准。 WITH GRANT OPTION:表示由GRANT授权的用户或登录帐户有权将当前获得的对象权限转授予其它用户或登录帐户。 AS 组|角色:表明要授予权限的用户从该组或角色处继承的权限。 * */69 授予用户或角色权限(3) 例10.20 授予角色和用户对象权限。 USE JXGL GO GRANT SELECT ON SC TO public GO GRANT INSERT,UPDATE,DELETE ON SC TO Stu_1,Stu_User GO 通过给public角色授予SC表的SELECT权限,使得public角色中的所有成员都拥有SELECT权限,而数据库JXGL的所有用户均为public角色的成员,所以该数据库的所有成员都拥有对SC表的查询权。本例还授予Stu_1和Stu_User对SC表拥有INSERT、UPDATE和DELETE权限。 * */69 拒绝用户或角色权限 (1) DENY [ALL[PRIVILEGES]]|权限[, … n ] [(列名[, … n])] ON 表|视图 |表|视图[(列名[, … n ] |ON 存储过程|用户定义函数 TO 用户|登录帐户[, … n ] [CASCADE] 其中,CASCADE指定授予用户拒绝权限,并撤销用户的WITH GRANT OPTION权限。 例10.21 利用DENY语句拒绝用户Stu_User使用CREATE VIEW语句。 USE JXGL GO DENY CREATE VIEW TO Stu_User GO * */69 撤销用户或角色权限 (1) 例10.22 给public角色授予表S上的INSERT权限,但用户User_01、User_02不具有对S表的INSERT权限。 USE JXGL GO GRANT INSERT ON S TO public GO DENY INSERT ON S TO User_01,User_02 GO 这个例子首先把对“S”的INSERT权限授予public角色,这样所有的数据库用户都拥有了该项权限。然后,又拒绝了用户User_01和User_02拥有该项权限。 * */69 授予用户或角色权限(1) 撤销语句权限 REVOKE ALL|权限[, … n] FROM 用户|角色[, … n] 语句的意义为:从指定的用户或角色收回所有的或指定的权限。 例10.23 在教学管理数据库中,收回用户Stu_1的建表权限。 USE JXGL GO REVOKE CREATE TABLE FROM Stu_1 GO * */69 授予用户或角色权限(2) 撤销对象权限 REVOKE [ALL[PRIVILEGES]]|权限[, … n] [(列名[, … n])] ON 表|视图 |表|视图[(列名[, … n] |ON 存储过程|用户定义函数 TO|FROM 用户|登录帐户[, … n] [CASCADE] [AS 组|角色] 例10.24 使用REVOKE语句撤销用户Stu_1,Stu_User在SC表上的INSERT、UPDATE、DELETE权限。 REVOKE INSERT,UPDATE,DELETE ON SC FROM Stu_1,Stu_User * */69 使用系统存储过程查看权限 可以使用系统存储过程sp_helprotect查看当前数据库中某对象(如表、视图等)的语句权限信息。 例10.25 查询数据库JXGL的表S的权限。 USE JXGL GO EXEC sp_helprotect S GO 例10.26 查看数据库JXGL对象S表的语句权限。 USE JXGL GO EXEC sp_helprotect NULL,NULL,NULL,S GO 其中使用 NULL 作为缺少的3个参数的占位符。 * */69 本次课小结
显示全部
相似文档