Under 权限

您拥有您创建的任何命名的 ROW 数据类型。如果您想要其他用户能够在此命名的 ROW 类型之下创建子类型,则您必须授予这些用户对于您的命名的 ROW 类型的 Under 权限。如果您稍后想要移除这些用户在该命名的 ROW 类型之下创建子类型的能力,则您必须从这些用户取消 Under 权限。带有 UNDER ON TYPE 关键字的 REVOKE 语句移除您稍早授予这些用户的 Under 权限。

例如,假设您创建了名为 rtype1 的 ROW 类型:
CREATE ROW TYPE rtype1 (cola INT, colb INT);
如果您想要另一名为 kathy 的用户能够在此命名的 ROW 类型之下创建子类型,则您必须将对于此命名的 ROW 类型的 Under 权限授予用户 kathy
GRANT UNDER ON TYPE rtype1 TO kathy;
现在,即使 kathy 不是 rtype1 ROW 类型的所有者,用户 kathy 也可在 rtype1 ROW 类型之下创建另一 ROW 类型:
CREATE ROW TYPE rtype2 (colc INT, cold INT) UNDER rtype1;
如果您稍后想要移除用户 kathyrtype1 ROW 类型之下创建子类型的能力,则请输入下列语句:
REVOKE UNDER ON TYPE rtype1 FROM kathy;