GRANT 语句支持将访问权限授予 PUBLIC 组的语法,该组包括持有对数据库的 Connect 权限的所有用户。
元素 | 描述 | 限制 | 语法 |
---|---|---|---|
grantor | UDR 的所有者 | 不可为角色 | 所有者名称 |
此语句使得 PUBLIC 组中的每个用户都可以执行指定的例程。它覆盖 NODEFDAC 环境变量,如果该变量的设置阻止 PUBLIC 组在缺省情况下获得对例程的 Execute 权限的话。此语句还使那些不持有 DBA 权限的用户可以执行指定的例程,不论是否以 DBA 关键字创建了那个例程。
仅持有 DBA 权限的用户可指定 AS grantor 子句。指定的 grantor 必须为指定的例程的所有者,罗列在 sysprocedures 系统目录表的 owner 列中。grantor 不可为角色的名称或 PUBLIC 关键字。
在符合 ANSI 的数据库中,需要 AS grantor 子句,而不是作为可选项,如果发出 GRANT EXECUTE 语句的 DBA 不是指定的例程的所有者的话。
仅在可选的 AS grantor 子句中指定的用户可使用 SQL 的 REVOKE 语句来从 PUBLIC 组取消 Execute 权限
在可选的 AS grantor 子句中指定的用户可使用 REVOKE 语句来从 PUBLIC 组取消 Execute 权限。