授予和撤销 Execute 权限

例程有下列 GRANT 和 REVOKE 要求:
  • DBA 可将 Execute 权限授予数据库中的任何例程,也可撤销它。
  • 例程的创建者可授予或取消对那个特定的例程的 Execute 权限。通过包括带有 GRANT EXECUTE ON 语句的 AS grantor 子句,创建者丧失授予或撤销的能力。
  • 如果所有者在 GRANT EXECUTE ON 语句中应用了 WITH GRANT 关键字,则另一用户可授予 Execute 权限。
对于下列条件,DBA 或例程所有者必须显式地将 Execute 权限授予非 DBA 用户:
  • 以 DBA 关键字子句注册了的例程
  • 在符合 ANSI 的数据库中的例程
  • 不符合 ANSI 的数据库中的例程,但将 NODEFDAC 环境变量设置为 yes

即使数据库服务器缺省地将权限授予 public,所有者也可限制对例程的 Execute 权限。为此,请发出 REVOKE EXECUTE ON PUBLIC 语句。DBA 和所有者仍可执行该例程,且如果使用的话,则可将 Execute 权限授予特定的用户。