当您以 CREATE TABLE 语句创建表时,您是该表的所有者,且自动地收到所有的表级权限。您不可将所有权转给另一用户,但您可将表级权限授予另一用户或授予一角色。(然而, 请参阅 RENAME TABLE 语句,它可更改表的名称和所有权。)
权限 | 作用 |
---|---|
INSERT | 让您插入行 |
DELETE | 让您删除行 |
SELECT | 让您访问 SELECT 语句中的任何列。您可通过罗列列来将 Select 权限限定到一列或多列。 |
UPDATE | 让您访问 UPDATE 语句中的任何列。您可通过罗列列来将 Update 权限限定到到一列或多列。 |
REFERENCES | 让您定义对列的引用约束。您必须有 Resource 权限来利用 References 权限。(然而,您可在 ALTER TABLE 语句期间添加参考约束,而无需持有数据库的 Resource 权限。)您仅需 References 权限来指出级联删除。您无需 Delete 权限来在表上放置级联删除。您可通过罗列列来将 References 权限限定到一列或多列。 |
INDEX | 让您创建永久索引。您必须有 Resource 权限来使用 Index 权限。(有 Connect 权限的任何用户可在临时表上创建索引。) |
ALTER | 让您添加或删除列,修改列数据类型,添加或删除约束,将表的锁定模式由 PAGE 修改为 ROW,或为您的表添加或删除对应的 ROW 数据类型。 它还让您启用或禁用索引、约束和触发器,如
SET Database Object Mode 语句 中所描述。
您必须有 Resource 权限来使用 Alter 权限。此外,对于受 ALTER TABLE 语句影响的任何用户定义的数据类型,您还需要 Usage 权限。 |
UNDER | 让您创建类型表之下的子表。 |
ALL | 提供以上列出的所有权限。PRIVILEGES 关键字是可选的。 |
您可通过指定权限适用的列来缩小 Select、Update 或 References 权限的范围。
指定关键字 PUBLIC 为 user,如果您想要 GRANT 语句应用于所有用户。
以下一些简单的示例展示如何以 GRANT 语句来授予表级权限。
GRANT DELETE, SELECT, UPDATE (customer_num, fname, lname) ON customer TO mary, john;
GRANT DELETE, SELECT, UPDATE (customer_num, fname, lname) ON customer TO PUBLIC;
GRANT UNDER ON tab1 TO john;
收到 tab1 表上的 Under 权限之后,用户 john 可创建 tab1 之下的一个或多个子表。