将 Execute 权限从 PUBLIC 取消

REVOKE 支持下列从 PUBLIC 组取消对特定的例程的访问权限的语法,该组包括对数据库持有 Connect 权限的所有用户。

REVOKE EXECUTE TO PUBLIC
元素 描述 限制 语法
revoker UDR 的所有者 不可为角色 所有者名称

此语句防止 PUBLIC 组在缺省情况下获得对指定的例程的 Execute 权限。(然而,个别的持有 DBA 权限的用户,或拥有该例程的用户,或被个别地授予了或通过角色获得了对此例程的 Execute 权限的用户,他们不受此语句的影响。

仅持有 DBA 权限的用户可指定 AS revoker 子句。指定的取消者必须为指定的例程的所有者,罗列在 sysprocedures 系统目录表的 owner 列中。该名称不可为角色的名称或 PUBLIC 关键字。

在符合 ANSI 的数据库中,需要 AS revoker 子句,而不是可选的,如果发出 REVOKE EXECUTE 语句的 DBA 不是指定的例程的所有者的话。

在 PUBLIC 组在缺省情况下持有对所有者权限的例程的 Execute 权限的数据库中,在将对执行指定的例程的自主访问权限可授权给用户的子集或授权给一个或多个角色之前,必须成功地执行 REVOKE EXECUTE ON PUBLIC 语句。否则,仅有 DBA 权限的用户或该例程的所有者可启动它。