db2secGetDefaultLoginContext API - 获取缺省登录上下文

确定与缺省登录上下文关联的用户,即,确定调用 Db2 命令的用户的 Db2® 授权标识,而不显式指定用户标识 (对数据库的隐式认证或本地授权)。 此 API 必须同时返回授权标识和用户标识。

API 和数据结构语法

     SQL_API_RC ( SQL_API_FN *db2secGetDefaultLoginContext) 
                           ( char authid[DB2SEC_MAX_AUTHID_LENGTH],
                             db2int32 *authidlen,
                             char userid[DB2SEC_MAX_USERID_LENGTH],
                             db2int32 *useridlen,
                             db2int32 useridtype,
                             char usernamespace[DB2SEC_MAX_USERNAMESPACE_LENGTH],
                             db2int32 *usernamespacelen,
                             db2int32 *usernamespacetype,
                             const char *dbname,
                             db2int32 dbnamelen,
                             void      **token,
                             char      **errormsg,
                             db2int32 *errormsglen );

db2secGetDefaultLoginContext API 参数

authid
输出。 应返回授权标识的参数。 返回的值必须符合 DB2 授权标识的命名规则,否则将不会授权用户执行所请求的操作。
authidlen
输出。 authid 参数值的长度(以字节计)。
userid
输出。 应返回与缺省缺省登录上下文相关联的用户标识的参数。
useridlen
输出。 userid 参数值的长度(以字节计)。
useridtype
输入。 标识指定的是进程的实用户标识还是有效用户标识。 在 Windows 上,仅存在实际用户标识。 在 UNIX 和 Linux®上,如果应用程序的 uid 用户标识与执行进程的用户标识不同,那么实际用户标识和有效用户标识可能不同。 userid 参数具有下列有效值(它们是在 db2secPlugin.h 中定义的):
DB2SEC_PLUGIN_REAL_USER_NAME
指示指定的是实用户标识。
DB2SEC_PLUGIN_EFFECTIVE_USER_NAME
指示指定的是有效用户标识。
注: 某些插件实现可能无法区分真实用户标识和有效用户标识。 特别是,不使用用户的 UNIX 或 Linux 身份来建立 Db2 授权标识的插件可以安全地忽略此区别。
usernamespace
输出。 用户标识的名称空间。
usernamespacelen
输出。 usernamespace 参数值的长度(以字节计)。 由于存在 usernamespacetype 参数必须设置为值 DB2SEC_NAMESPACE_SAM_COMPATIBLE(此值是在 db2secPlugin.h 中定义的)这一局限性,因此当前支持的最大长度为 15 字节。
usernamespacetype
输出。 名称空间类型值。 目前,唯一受支持的名称空间类型是 DB2SEC_NAMESPACE_SAM_COMPATIBLE(对应类似于 domain\myname 的用户名样式)。
dbname
输入。 包含要连接至的数据库的名称(如果在数据库连接上下文中使用此调用)。 对于本地授权操作或实例连接,此参数设置为 NULL。
dbnamelen
输入。 dbname 参数值的长度(以字节计)。
token
输出。 这是一个指向由插件分配的数据的指针,而此数据可能会被传递给该插件中的后续认证调用,也有可能被传递给组检索插件。 此数据的结构由插件编写者确定。
errormsg
输出。 指向由插件分配的 ASCII 错误消息字符串地址的指针,如果执行 db2secGetDefaultLoginContext API 不成功,就会返回此错误消息。
errormsglen
输出。 指向一个用于指示 errormsg 参数中的错误消息字符串长度(以字节计)的整数的指针。