查询授权
SELECT语句、fullselect 、select-statement 和子查询的授权规则相同。
对于任何形式的查询,下面定义的权限集必须包含以下权限或权限集之一:
- 对于语句中标识的每个表或视图,权限集必须包含以下内容之一:
- 表格或视图的所有权
- 表或视图的 SELECT 权限
- DBADM 数据库权限(仅限表格)
如果数据库是隐式创建的,则数据库权限必须位于隐式数据库或 DSNDB04 上。
- SYSADM 权限
- SYSCTRL权限(仅限目录表)
- DATAACCESS 权限
安装SYSOPR权限(仅限目录表和系统表)
如果查询包含用户定义的函数,则语句授权ID所拥有的权限必须至少包含以下一项:
- 对于语句中标识的每个用户定义的函数,以下选项之一:
- 函数上的EXECUTE权限
- 拥有该功能
- SYSADM 权限
- DATAACCESS 权限
如果查询包含序列对象,则语句授权ID所拥有的权限必须至少包含以下一项:- 对于语句中标识的每个序列对象,以下选项之一:
- 序列对象上的 USAGE 权限
- 序列对象的所有权
- DATAACCESS 权限

如果选择语句是DECLARE CURSOR语句的一部分,则权限集是指计划或包的所有者的授权ID所拥有的权限。
如果选择语句包含 SQL 数据更改语句,则权限集必须包括 SELECT 权限以及目标表或视图上 SQL 数据更改语句的相应权限(插入、更新或删除权限)。
如果 select语句引用了包含活动行或列访问控制的表,并且为该表定义了行权限或列掩码,则语句的授权ID或角色无需权限即可引用这些行权限或列掩码定义中指定的对象。
查询权限设置
如果语句嵌入在应用程序中,则权限集是指计划或包的所有者所拥有的权限。 
如果语句是动态准备的,并且应用程序在可信环境中绑定,则权限集是该角色所拥有的一组权限。 否则,特权集取决于动态SQL语句的行为,该行为由选项DYNAMICRULES指定:
- 运行行为
- 特权集是流程中每个授权ID所持有的特权集的集合。
- 绑定行为
- 特权集是指计划或套餐所有者授权ID所拥有的特权。
- 定义行为
- 特权集是指由存储过程或用户定义函数的授权ID持有的特权。
- 调用行为
- 特权集是指存储过程或用户定义函数的调用者的授权ID所拥有的特权。
有关指定运行、绑定、定义或调用行为的DYNAMICRULES值的列表,请参见表1。
当任何形式的查询作为另一个语句的组成部分时,适用于该查询的授权规则将在该语句的描述中指定。 例如,请参阅 CREATE VIEW语句中适用于子选择的 授权规则。
如果您的安装使用了访问控制授权退出( DSNX@XAC ),则该退出可能会控制授权规则,而不是此处列出的规则。