查询授权

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 ),则该退出可能会控制授权规则,而不是此处列出的规则。