授予和撤销对模块的特权

想要允许或禁止数据库用户引用模块中定义的对象来作为安全措施的一部分时,应授予和撤销对模块的特权。

开始之前

继续此任务之前:
  • 查看 GRANT (Module privileges) 语句语法和 REVOKE (Module privileges) 语句语法。
  • 模块必须存在。
  • 您必须具有执行 GRANT 或 REVOKE 语句的权限。
  • 标识要对其授予或撤销特权的用户、组或角色的授权标识。

关于此任务

可授予或撤销对模块的 EXECUTE 特权。EXECUTE 特权允许用户执行许多任务,包括:执行模块中定义的已发布例程、读取和写入已发布全局变量以及引用任何已发布用户定义的类型。

限制

有关限制:

过程

  1. 创建 GRANT 或 REVOKE 语句:
    1. 指定 GRANT 子句以授予特权或指定 REVOKE 子句以撤销特权。
    2. 指定 EXECUTE ON MODULE 子句以指定特权。
    3. 指定模块的名称。
    4. 如果授予特权,请指定 TO 子句;如果撤销特权,请指定 FROM 子句。
    5. 指定要更改其特权的用户的授权标识。
  2. 执行该语句。

结果

如果该语句成功执行,那么会更新对模块的特权。

示例

以下是将对模块 inventory 的 EXECUTE 特权授予授权标识 jones 的 SQL 语句示例:
GRANT EXECUTE ON MODULE inventory TO jones@
以下是撤销授权标识 macdonald 中对模块 inventory 的 EXECUTE 特权的 SQL 语句示例:
REVOKE EXECUTE ON MODULE inventory FROM macdonald@

下一步做什么

成功授予或撤销对模块的特权后,可通过验证尝试执行模块中的例程时是否按预期工作来验证是否进行了更改。