MQZ_GET_EXPLICIT_AUTHORITY_2 -获取显式权限 (已扩展)

此函数由 MQZAS_VERSION_2 授权服务组件提供,并由队列管理器启动,以检索指定组必须访问指定对象的权限 (但没有 没人 组的其他权限) 或指定主体的主组必须访问指定对象的权限。

此函数 (针对 MQZEP) 的函数标识为 MQZID_GET_EXPLICIT_AUTHORITY。

MQZ_GET_EXPLICIT_AUTHORITY_2 类似于 MQZ_GET_EXPLICIT_AUTHORITY ,但将 EntityName 参数替换为 EntityData 参数。

语法

MQZ_GET_EXPLICIT_AUTHORITY_2( QMgrName , EntityData , EntityType , ObjectName , ObjectType , Authority , ComponentData , Continuation , CompCode , Reason )

参数

QMgrName
类型:MQCHAR48 - 输入

队列管理器名称。 调用组件的队列管理器的名称。 此名称将用空格填充到参数的完整长度; 该名称未以空字符终止。

队列管理器名称将传递给组件以获取信息; 授权服务接口不要求组件以任何定义的方式使用该名称。

EntityData
类型 :MQZED-输入

实体数据。 与要检索其对该对象的授权的实体相关的数据。 详见MQZED - 实体描述符

EntityType
类型 :MQLONG-输入
实体类型。 EntityData指定的实体类型。 它必须是下列其中一个值:
校长
校长
MQZAET_GROUP
组。
ObjectName
类型:MQCHAR48 - 输入

对象名称。 要检索其实体权限的对象的名称。 字符串的最大长度为 48 个字符; 如果它比它短,那么将用空格填充到右边。 名称未以空字符终止。

如果 ObjectType 是 MQOT_Q_MGR ,那么此名称与 QMgrName相同。

ObjectType
类型 :MQLONG-输入
对象类型。 ObjectName指定的实体类型。 它必须是下列其中一个值:
MQOT_AUTH_INFO
认证信息。
MQOT_通道
通道。
mqot_clntconn_channel
客户机连接通道。
MQOT_监听器
侦听器。
MQOT_名称列表
NAMELIST.
MQOT_PROCESS
process definition.
MQOT_Q
队列。
MQOT_Q_MGR
队列管理器。
MQOT_服务
服务。
MQOT_主题
主题中查看此版本新增功能的摘要。
权限
类型 :MQLONG-输入

实体的权限。 如果实体具有一个权限,那么此字段等于相应的授权操作 (MQZAO_ * 常量)。 如果它具有多个权限,那么此字段是相应 MQZAO_ * 常量的按位 OR。

ComponentData
类型:MQBYTE×ComponentDataLength- 输入/输出

组件数据。 此数据由队列管理器代表此特定组件保存; 此组件提供的任何函数对其进行的任何更改都将保留,并在下次调用其中一个组件函数时显示。

此数据区的长度由队列管理器在 MQZ_INIT_AUTHORITY 调用的 ComponentDataLength 参数中传递。

延续
类型:MQLONG - 输出
按组件设置的连续指示符。 可以指定以下值:
MQZCI_默认
依赖于队列管理器的延续。

对于 MQZ_CHECK_AUTHORITY ,这与 MQZCI_STOP 具有相同的效果。

MQZCI_CONTINUE
继续下一个组件。
MQZCI_STOP
请勿继续使用下一个组件。
CompCode
类型:MQLONG - 输出
完成代码。 它必须是下列其中一个值:
MQCC_OK
成功完成。
MQCC_FAILED
调用失败。
原因
类型:MQLONG - 输出

原因码限定 CompCode

如果 CompCode 为 MQCC_OK:
MQRC_NONE
(0, X'000') 没有要报告的原因。
如果 CompCode 为 MQCC_FAILED:
MQRC_NOT_AUTHORIZED
(2035, X'7F3') 未获得访问授权。
mqrc_service_error
(2289,X'8F1')访问服务时发生意外错误。
mqrc_service_not_available
(2285,X'8ED')基础服务不可用。
mqrc_unknown_entity
(2292,X'8F4')服务未知实体。
有关这些原因码的更多信息,请参阅 API 完成代码和原因码

C 调用

MQZ_GET_EXPLICIT_AUTHORITY_2 (QMgrName, &EntityData, EntityType,
                             ObjectName, ObjectType, &Authority,
                             ComponentData, &Continuation,
                             &CompCode, &Reason);
传递到服务的参数声明如下:
MQCHAR48  QMgrName;          /* Queue manager name */
MQZED     EntityData;        /* Entity data */
MQLONG    EntityType;        /* Entity type */
MQCHAR48  ObjectName;        /* Object name */
MQLONG    ObjectType;        /* Object type */
MQLONG    Authority;         /* Authority of entity */
MQBYTE    ComponentData[n];  /* Component data */
MQLONG    Continuation;      /* Continuation indicator set by
                                component */
MQLONG    CompCode;          /* Completion code */
MQLONG    Reason;            /* Reason code qualifying CompCode */