OBJECT_特权表函数

OBJECT_特权表函数针对每个有权使用指定对象的用户及其关联对象和数据权限返回一行。

返回的信息类似于通过 "显示对象权限" (DSPOBJAUT) CL 命令提供的信息。

授权: 当至少满足下列其中一个条件时,将针对对象返回所有授权用户:
  • 对象是 *AUTL ,调用者对该对象具有 *AUTLMGT 权限。
  • 该对象不是 *AUTL ,并且调用者对该对象具有 *OBJMGT 权限。
  • 调用者是对象的所有者。
  • 调用者有权使用 QIBM_DB_SECADM 函数使用标识。
否则,将仅返回调用者的权限。
读取语法图跳过可视语法图 OBJECT_PRIVILEGES ( 系统对象模式 =>  系统对象模式 , 系统对象名称 =>  系统对象名称 ,对象类型 =>  对象类型 )
模式为 QSYS2。
系统对象模式
用于标识包含 system-object-name的库的字符或图形字符串表达式。
系统对象名称
用于标识对象的字符或图形字符串表达式。
对象类型
用于指定系统对象类型 system-object-name的字符或图形字符串表达式。

此函数的结果是包含具有下表中所示格式的行的表。 所有列都是可空的。

表 1. OBJECT_特权表函数
列名 数据类型 描述
授权用户 VARCHAR(10) 用户概要文件名称。 可以包含以下特殊值。
*PUBLIC
此行包含对象的公共权限。
对象权限 VARCHAR(12) 用户对该对象具有的权限。 包含下列其中一个特殊值:
*全部
除对所有者有限制或受授权列表管理权限控制的那些操作以外,允许针对对象的所有操作。
*AUTL
使用此对象所使用的权限列表中指定的公共权限。
*CHANGE
除对所有者有限制或受对象存在权限、对象改变权限、对象引用权限和对象管理权限控制的那些操作以外,允许针对对象的所有操作。
*EXCLUDE
禁止针对对象的所有操作。
*USE
允许访问对象属性和使用对象。 用户不能更改对象。
用户定义
特定对象权限和数据权限与任何预定义的对象权限级别都不匹配。
授权列表 VARCHAR(10) 权限列表的名称 (如果对象受权限列表保护)。

如果对象不受权限列表保护,那么包含空值。

PRIMARY_GROUP VARCHAR(10) 作为对象的主组的用户。

如果对象没有主组,那么返回空值。

所有者 VARCHAR(10) 拥有对象的用户概要文件。
授权列表管理 VARCHAR(3) AUTHORIZATION_USER 的权限列表管理权限。
用户没有此权限。
用户具有此权限。
对象所有者 VARCHAR(3) 指示此行的 AUTHORIZATION_USER 是否也是对象的 OWNER。
AUTHORIZATION_USER 不是对象的所有者。
AUTHORIZATION_USER 是对象的所有者。
对象操作 VARCHAR(3) 指示 AUTHORIZATION_USER 的对象操作权限。
用户没有此权限。
用户具有此权限。
对象管理 VARCHAR(3) AUTHORIZATION_USER 的对象管理权限。
用户没有此权限。
用户具有此权限。
对象存在 VARCHAR(3) AUTHORIZATION_USER 的对象存在权限。
用户没有此权限。
用户具有此权限。
对象 ECT_ALTER VARCHAR(3) AUTHORIZATION_USER 的对象变更权限。
用户没有此权限。
用户具有此权限。
对象参照 VARCHAR(3) AUTHORIZATION_USER 的对象引用权限。
用户没有此权限。
用户具有此权限。
数据读取 VARCHAR(3) AUTHORIZATION_USER 的数据读权限。
用户没有此权限。
用户具有此权限。
数据添加 VARCHAR(3) AUTHORIZATION_USER 的数据添加权限。
用户没有此权限。
用户具有此权限。
数据更新 VARCHAR(3) AUTHORIZATION_USER 的数据更新权限。
用户没有此权限。
用户具有此权限。
数据删除 VARCHAR(3) AUTHORIZATION_USER 的数据删除权限。
用户没有此权限。
用户具有此权限。
数据执行 VARCHAR(3) AUTHORIZATION_USER 的数据执行权限。
用户没有此权限。
用户具有此权限。

示例

返回文件 APPLIB/EMPLOYEE 的权限信息。
SELECT *
   FROM TABLE(QSYS2.OBJECT_PRIVILEGES('APPLIB', 'EMPLOYEE', '*FILE'));