Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 参考 » 使用 SQL » SQL 语句 » SQL 语句 (P-Z)

 

REVOKE 语句

此语句用于删除用户的权限。

语法 1
REVOKE permission, ... FROM userid, ...
permission : 
CONNECT 
| DBA 
| BACKUP 
| CREATE ON dbspace
| GROUP 
| INTEGRATED LOGIN
| KERBEROS LOGIN 
| MEMBERSHIP IN GROUP userid, ... 
| PROFILE 
| RESOURCE
| VALIDATE
语法 2
REVOKE table-permission, ...
ON [ owner.]table-name
FROM userid, ...
table-permission : 
ALL [PRIVILEGES] 
| ALTER 
| DELETE 
| INSERT 
| REFERENCES [ ( column-name, ... ) ] 
| SELECT [ ( column-name, ... ) ] 
| UPDATE [ ( column-name, ... ) ]
语法 3
REVOKE EXECUTE
ON [ owner.]procedure-name
FROM userid, ...
注释

REVOKE 语句删除使用 GRANT 语句授予的权限。语法 1 撤消特殊用户权限。语法 2 撤消表权限。语法 3 撤消执行过程的权限。

REVOKE CONNECT 从数据库中删除用户 ID,同时取消该用户所拥有的任何对象(表、视图、过程等)以及由该用户授予的任何权限。如果正在删除的用户拥有由其他用户拥有的视图引用的表,则您无法针对此用户执行 REVOKE CONNECT。

REVOKE GROUP 从组的所有成员自动撤消 MEMBERSHIP IN GROUP。

将某个用户添加到某一组后,该用户将继承指派给该组的所有权限。SQL Anywhere 不允许您撤消用户以组成员身份继承的权限的子集,因为您只能撤消由 GRANT 语句显式授予的权限。如果需要让不同的用户拥有不同的权限,则可创建具有适当权限的不同的组,或者为每位用户显式授予他们所需的权限。

授予或撤消一个组对于表、视图或过程的权限时,该组的所有成员都会继承这些更改。但不继承 DBA、RESOURCE 和 GROUP 权限:必须为需要这些权限的每个单独的用户 ID 分别指派这些权限。

如果授予用户 WITH GRANT OPTION 权限,之后又撤消该权限,则还会撤消该用户在具有 WITH GRANT OPTION 权限时授予其他用户的任何权限。

权限

必须是要撤消的权限的授予者,或者是有 DBA 权限的用户。

如果正撤消其他用户的连接权限或表权限,则此时该用户不能与数据库相连。无法撤消 DBO 的连接权限。

当连接到实用程序数据库时,如果执行 REVOKE CONNECT FROM DBA,则会禁用将来与实用程序数据库的连接。这意味着,除非您使用在执行 REVOKE CONNECT 之前便已存在的连接或重新启动数据库服务器,否则以后将无法连接到实用程序数据库。

副作用

自动提交。

另请参见
标准和兼容性
  • SQL/2003   语法 1 是服务商扩充。语法 2 是核心特性。语法 3 是持久存储模块特性。

示例

禁止用户 Dave 更新 Employees 表。

REVOKE UPDATE ON Employees FROM Dave;

撤消用户 Jim 的资源权限。

REVOKE RESOURCE FROM Jim;

撤消名为 Administrator 的用户配置文件的集成登录映射。

REVOKE INTEGRATED LOGIN FROM Administrator;

禁止 Finance 组执行 ShowCustomers 过程。

REVOKE EXECUTE ON ShowCustomers FROM Finance;

从数据库中删除用户 ID FranW。

REVOKE CONNECT FROM FranW;