ALL 关键字的作用

ALL 关键字将所有可能的表级权限授予指定的用户。如果对于 grantor 任何或所有表级权限都不存在,则带有 ALL 关键字的 GRANT 语句成功(如同 SQLCODE 设置为零,即使对于 grantor 在表上可能的权限设置为空)。然而,在这种情况下,返回下列 SQLSTATE 警告:
01007 - Privilege not granted.

例如,假设用户 tedcustomer 上有 Select 和 Insert 权限,将那些权限授予其他用户。

用户 ted 想要将所有表级权限授予用户 tania。因此,用户 ted 发出下列 GRANT 语句:
GRANT ALL ON customer TO tania;
此语句成功地执行,但由于下列原因返回 SQLSTATE 代码 01007

如果您以 ALL 关键字授予所有表级权限,则仅当该表为类型表时该权限才包括 Under 权限。ALL 权限的授予不包括 Under 权限,如果该表不是基于 ROW 类型的。

如果表所有者授予传统的关系表 ALL 权限,并在后来将那个表更改为类型表,则表所有者必须明确地授予 Under 权限来允许其他用户创建它之下的子表。