ALL 关键字取消所有表级权限。如果对于被取消者任何或所有表级权限不存在,则带有 ALL 关键字的 REVOKE 执行成功但返回下列
SQLSTATE 代码:
01006--Privilege not revoked
例如,假设用户
hal 有对
customer 表的 Select 和 Insert 权限。用户
jocelyn 想要从用户
hal 取消所有表级权限。于是用户
jocelyn 发出下列 REVOKE 语句:
REVOKE ALL ON customer FROM hal;
此语句执行成功但返回
SQLSTATE 代码 01006。返回该
SQLSTATE 警告是因为下列二者都为真:
- 该语句成功地从用户 hal 取消 Select 和 Insert 权限,因为用户 hal 有那些权限。
- 返回 SQLSTATE 代码 01006 是因为用户 hal 缺少通过 ALL 关键字隐含的其他权限,但这些权限还未被取消。
ALL 关键字指示数据库管理器来取消所有可能的权限,包括无任何权限。如果从其取消权限的用户没有对该表的权限,则 REVOKE ALL 语句仍然成功,因为它从该用户取消所有可能的权限(在此情况下,根本没有权限)。