使用动态SQL语句所需的权限

身份识别需要特定的权限才能发出动态SQL语句。

开始通用编程接口信息。下表列出了ID,并描述了发布每种类型的SQL语句所需的权限:

表 1. 动态SQL语句基本操作所需的权限
操作 身份或角色 需要的特权
GRANT 当前 SQL ID 或角色 以下任何一项特权:
  • 授予选项的适用特权
  • 包含权限的授权,带有授予选项(SYSADM或SYSCTRL不需要)
  • 所有权隐含了特权
REVOKE 当前 SQL ID 或角色 必须拥有被撤销的特权,或拥有SYSCTRL或SYSADM权限。
CREATE,用于非限定对象名称 当前 SQL ID 或角色 可用的表、数据库或架构权限
创建对象的限定名称 ID或角色被指定为所有者 适用的表格或数据库权限。 限定符可以是任何ID,如果当前SQL ID或角色(如果处于受信任的环境中,并指定了ROLE AS OBJECT OWNER AND QUALIFIER子句)具有SYSADM、系统DBADM或SYSCTRL权限(如果适用),或者具有数据库的DBADM或DBCTRL权限(如果适用),则无需任何特权。
如果DYNAMICRULES使用运行行为,则其他动态SQL 所有主要ID、角色、次要ID和当前SQL ID 根据声明要求。 不加限定的对象名称由特殊寄存器CURRENT SQLID的值限定。
如果DYNAMICRULES使用绑定行为,则其他动态SQL 计划或项目所有者 根据声明要求。 DYNAMICRULES 行为决定如何限定不合格的对象名称。
如果DYNAMICRULES使用其他动态SQL,则定义行为 功能或程序所有者 根据声明要求。 DYNAMICRULES 行为决定如何限定不合格的对象名称。
如果DYNAMICRULES使用invoke行为,则使用其他动态SQL 调用函数、过程或角色的SQL语句的ID 根据声明要求。 DYNAMICRULES 行为决定如何限定不合格的对象名称。
通用编程接口信息结束。