1
数据库原理与应用技术
1.6.6.2 5.6.2 收回权限
5.6.2 收回权限

可以由DBA或权限授予者使用REVOKE把授予用户的权限收回。

1. 收回语句权限的语句格式

REVOKE﹛ALL︱语句权限1[,…,n]﹜

FROM <用户1>[,…,n]

其功能为从指定用户那里收回指定语句的操作权限。

【例5-78】将在学生数据库上创建表和视图的权限从用户“胡峰”手中收回,写出相关语句。

解:REVOKE CREATE TABLE,CREATE VIEW FROM 胡峰

2. 收回对象权限的语句格式

REVOKE [GRANT OPTION FOR]

﹛ALL︱对象权限1[,…,n]﹜

[ON <对象类型><对象名>]

FROM <用户1>[,…,n]

CASCADE

其功能为从指定用户那里收回对指定对象的操作权限。其中,GRANT OPTION FOR表明撤销用户授予其他用户权限的特权,仍保留用户自己的访问权限。CASCADE表明撤销用户的访问权限及GRANT OPTION特权。

【例5-79】把用户R4修改学生学号的权限收回,写出相关语句。

解:REVOKE UPDATE(sno) ON student FROM R4

【例5-80】收回所有用户对enroll的查询权限,写出相关语句。

解:REVOKE SELECT ON enroll FROM PUBLIC

【例5-81】把对表courses的INSERT权限从用户R5手中收回,并同时撤销他的GRANT OPTION特权,写出相关语句。

解:REVOKE INSERT ON course FROM R5 CASCADE

系统撤销了R5对表course的INSERT权限,同时也要撤销R6和R7对表course的INSERT权限,撤销会级联发生。

【例5-82】只撤销R5的GRANT OPTION特权,但保留R5对表course的INSERT权限,写出相关语句。

解:REVOKE GRANT OPTION FOR INSERT ON course FROM R5

用户对自己创建的表和视图拥有全部的操作权限,并且可以用GRANT语句把其中某些权限授予其他用户。被授权的用户如果有继续授权的许可,还可以把获得的权限再授予其他用户。所有用GRANT语句授予出去的权限在必要时又都可以用REVOKE语句收回。