表级权限,也称为表权限,指定用户或角色可在数据库中的表或视图上执行哪些操作。您可使用同义词来指定您在其上授予或取消表权限的表或视图。
可在表或视图的列的子集上授予 Select、Update 和 References 权限,但仅可对所有列取消权限。对于在定义同一用户拥有的视图的 SELECT 语句中引用的表,如果从用户取消 Select 权限,则删除那个视图,除非它还包括来自另一数据库中表的列。
对于 CREATE EXTERNAL TABLE 语句已经在当前的数据库中注册了的表对象,仅支持 Select 权限和 Insert 权限;不可授予或取消其他表或列访问权限。
权限 | 在 REVOKE 之后的作用 |
---|---|
INSERT | 用户不可插入行。 |
DELETE | 用户不可删除行。 |
SELECT | 用户不可通过 SELECT 语句显示检索的数据。 |
UPDATE | 用户不可更改列值。 |
INDEX | 用户不可创建永久的索引。您必须有 Resource 权限来利用 Index 权限。(但任何有 Connect 权限的用户都可在临时表上创建索引。) |
ALTER | 持有者不可添加或删除列、修改列数据类型、添加或删除约束、将表的锁定模式由 PAGE 更改为 ROW,也不可添加或删除相应的命名了的 ROW 类型表。用户还不可启用或禁用索引、约束以及触发器,如 SET Database Object Mode 语句 中所述。 |
权限 | 在 REVOKE 之后的作用 |
---|---|
REFERENCES | 用户不可引用引用约束中的列。您还必须有对该数据库的 Resource 权限来利用表上的 References 权限。(然而,您可在 ALTER TABLE 语句期间添加引用约束,而不持有对该数据库的 Resource 权限。)取消 References 权限不允许级联 DELETE 操作。 |
UNDER | 用户不可创建在类型表之下的子表。 |
ALL | 这将移除以上罗列的所有表权限。(此处的 PRIVILEGES 关键字是可选的。) |
另请参阅 表级权限。
如果用户从两个不同的授予者收到相同的权限,且一授予者取消该权限,则被授予者仍有该权限,直到第二个授予者也取消该权限为止。例如,如果您和 DBA 都将对您的表的 Update 权限授予 ted,则您和 DBA 必须都取消 Update 权限来阻止 ted 更新您的表。
然而,如果用户 ted 通过角色或作为 PUBLIC 持有相同的权限,则此 REVOKE 操作不能阻止 ted 行使 Update 权限。