动态 SQL 语句的授权行为
影响授权行为的两个关键因素是DYNAMICRULES值和软件包的运行环境。 DYNAMICRULES值和运行环境共同决定了动态SQL属性的值。 这些属性值被称为授权行为。
BIND或REBIND命令中的DYNAMICRULES选项用于确定在运行时应用于以下动态SQL属性的值:
- 用于检查授权的授权ID或角色
- 用于不合格对象的限定符
- Db2 用于解析和语义验证动态SQL语句的应用程序编程选项的源文件
DYNAMICRULES选项还决定动态SQL语句是否可以包含GRANT、REVOKE、ALTER、CREATE、DROP和RENAME语句。
除了DYNAMICRULES值,包的运行时环境还控制动态SQL语句在运行时的行为。 两种可能的运行环境是:
- 该软件包作为独立程序的一部分运行。
- 该包作为存储过程或用户定义的函数包运行,或在存储过程或用户定义的函数下运行。
在存储过程或用户定义函数下运行的包是指其关联程序满足以下条件之一的包:
- 该程序由存储过程或用户定义的函数调用。
- 该程序由一系列嵌套调用组成,以存储过程或用户定义的函数开始。