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 参数中的错误消息字符串长度(以字节计)的整数的指针。