暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

动态的例程名称规范

淮海路小佩奇 2023-10-30
83

注册例程的权限

要在数据库中注册例程,被授权的用户将 SPL 命令包含在 CREATE FUNCTION 或 CREATE PROCEDURE 语句中。数据库服务器存储内部注册了的 SPL 例程。下列用户具 有在数据库中注册新的例程的资格:

• 有 DBA 权限的任何用户可在 CREATE 语句中,使用或不使用 DBA 关键字来注 册例程。

要了解 DBA 关键字的说明,请参阅 执行例程的 DBA 权限。

• 没有 DBA 权限的用户需要 Resource 权限来注册 SPL 例程。该例程的创建者是 所有者。

没有 DBA 权限的用户不可使用 DBA 关键字来注册例程。 DBA 必须给其他需要创建例程的用户授予 Resource 权限。DBA 还可撤销 Resource 权限,防止用户创建更多的例程。

• 除了对在其中注册 UDR 的数据库保存持有 DBA 权限或 Resource 权限之外,创 建 UDR 的用户还必须持有对以其编写 UDR 的编程语言的 Usage 权限。这些 SQL 可为特定的编程语言授予语言级别的 Usage 权限:

ₒ GRANT USAGE ON LANGUAGE C

ₒ GRANT USAGE ON LANGUAGE JAVA

ₒ GRANT USAGE ON LANGUAGE SPL

除了个别的用户之外,这些权限的被授予者还可为用户定义的角色,或 PUBLIC

组。在将语言级别 Usage 权限授予角色之后,持有那个角色的任何用户都可通过 使用 SQL 的 SET ROLE 语句使得该角色的所有访问权限能够指定那个角色作为 当前的角色。

对于以 C 语言或 Java™ 语言编写的外部例程,如果启用 IFX_EXTEND_ROLE 配置参数, 则仅 DBSA 已授予其 EXTERNAL 角色的用户可注册、删除或修改外部的 UDR 或 DataBlade 模块。在缺省情况下,启用此参数。通过将 IFX_EXTEND_ROLE 配置参数设 置为 OFF 或设置为 0,DBSA 可禁用对持有 DataBlade 模块或外部 UDR 的 DDL 操作 EXTEND 角色的要求。然而,此安全特性对 SPL 例程不起作用。

总之,持有以上标识的数据库级别和语言级别自主访问控制权限(且还持有 EXTEND 角 色,如果启用 IFX_EXTEND_ROLE 且该 UDR 为外部例程的话)的用户,可在下列 SQL

语句中引用 UDR:

• DBA 或用户可以 CREATE FUNCTION、CREATE FUNCTION FROM、CREATE PROCEDURE、CREATE PROCEDURE FROM、CREATE ROUTINE 或 CREATE ROUTINE FROM 语句来注册新的 UDR。

• DBA 或现有 UDR 的所有者可以 DROP FUNCTION、DROP PROCEDURE 或 DROP ROUTINE 语句来取消那个 UDR 的注册。

• DBA 或现有 UDR 的所有者可以 ALTER FUNCTION、ALTER PROCEDURE 或 ALTER ROUTINE 语句来修改那个 UDR 的定义。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论