取消 EXTEND 角色

REVOKE EXTEND FROM user-list 语句取消指定用户的 EXTEND 角色。在启用 IFX_EXTEND_ROLE 配置参数的数据库中,取消此角色防止指定的用户创建或删除外部 UDR。用户是否持有 EXTEND 角色对创建或删除以 SPL 语言编写的 UDR 没有作用。

仅数据库服务器管理员(DBSA),缺省为用户 gbasedbt,可通过发出 GRANT EXTEND TO user-list 语句将内建的 EXTEND 角色授予一个或多个用户或授予 PUBLIC。(由于 EXTEND 为内建的角色,因此持有它的用户不需要以 SET ROLE 语句激活它,且 DROP ROLE 语句不可销毁 EXTEND 角色。)

如果 IFX_EXTEND_ROLE 配置参数设置为 ON 或为 1,则不持有 EXTEND 角色的用户不可创建或删除以 C 或 Java™ 语言编写的 UDR,这两种语言都支持共享库。下列示例从用户 max 取消 EXTEND 角色:
REVOKE EXTEND FROM 'max';

这防止用户 max 创建或删除外部的 UDR,即使 max 为它后续试图删除的那个 UDR 的所有者。

在不需要此安全特性的数据库中,DBSA 可通过设置 ONCONFIG 文件中的 IFX_EXTEND_ROLE 参数为 OFF 或为 0 来禁用对可创建或删除外部的 UDR 的用户的限制。但不论启用或禁用 IFX_EXTEND_ROLE,创建或删除外部的 UDR 的用户还必须持有下列访问权限:

要获取关于 Resource 权限的信息,请参阅 数据库级权限。要获取 SQL 的 GRANT USAGE ON LANGUAGE C 和 GRANT USAGE ON LANGUAGE JAVA 的语法,请参阅 语言级权限