db2secRemapUserid API - 重新映射用户标识和密码

此 API 由客户端上的 Db2® 数据库管理器调用,以将给定的用户标识和密码 (可能还有新密码和用户名称空间) 重新映射到与连接时给定的值不同的值。

仅当在连接时提供了用户标识和密码时,DB2 数据库管理器才会在客户端调用此 API。 这将防止插件将用户标识本身重新映射至用户标识/密码对。 此 API 是可选的。如果它不是由安全插件提供或实现的,那么就不会调用此 API。

API 和数据结构语法

     SQL_API_RC ( SQL_API_FN *db2secRemapUserid)
                           ( char userid[DB2SEC_MAX_USERID_LENGTH], 
                             db2int32 *useridlen,
                             char usernamespace[DB2SEC_MAX_USERNAMESPACE_LENGTH],
                             db2int32 *usernamespacelen,
                             db2int32 *usernamespacetype,
                             char password[DB2SEC_MAX_PASSWORD_LENGTH],
                             db2int32 *passwordlen,
                             char newpasswd[DB2SEC_MAX_PASSWORD_LENGTH],
                             db2int32 *newpasswdlen,
                             const char *dbname,
                             db2int32 dbnamelen,
                             char      **errormsg,
                             db2int32 *errormsglen);

db2secRemapUserid API 参数

userid
输入或输出。 要重新映射的用户标识。 如果有输入用户标识值,那么此 API 必须提供一个输出用户标识值,此输出用户标识值可与该输入用户标识值相同或不同。 如果没有输入用户标识值,那么此 API 不应返回输出用户标识值。
useridlen
输入或输出。 userid 参数值的长度(以字节计)。
usernamespace
输入或输出。 用户标识的名称空间。 (可选)可以重新映射此值。 如果未指定输入参数值,但返回了输出值,那么 Db2 数据库管理器将仅将 usernamespace 用于 CLIENT 类型认证,而忽略其他认证类型。
usernamespacelen
输入或输出。 usernamespace 参数值的长度(以字节计)。 由于存在 usernamespacetype 参数必须设置为值 DB2SEC_NAMESPACE_SAM_COMPATIBLE(此值是在 db2secPlugin.h 中定义的)这一局限性,因此当前支持的最大长度为 15 字节。
usernamespacetype
输入或输出。 旧的和新的名称空间类型值。 目前,唯一受支持的名称空间类型值是 DB2SEC_NAMESPACE_SAM_COMPATIBLE(对应类似于 domain\myname 的用户名样式)。
密码
输入或输出。 如果作为输入,那么它是要重新映射的密码。 如果作为输出,那么它是已重新映射的密码。 如果为此参数指定了输入值,那么此 API 必须能够返回与该输入值不同的输出值。 如果没有指定输入值,那么此 API 一定不能返回输出密码值。
passwordlen
输入或输出。 password 参数值的长度(以字节计)。
newpasswd
输入或输出。 如果作为输入,那么它是要设置的新密码。 如果作为输出,那么它是经过确认的新密码。
注: 这是 Db2 数据库管理器传递到客户机或服务器上 db2secValidatePassword API 的 newpassword 参数中的新密码 (取决于 authentication 数据库管理器配置参数的值)。 如果新密码是作为输入来传递的,那么此 API 必须能够返回输出值,并且输出值可以是不同的新密码。 如果没有新密码是作为输入传递的,那么此 API 不应返回输出新密码。
newpasswdlen
输入或输出。 newpasswd 参数值的长度(以字节计)。
dbname
输入。 客户机要连接至的数据库的名称。
dbnamelen
输入。 dbname 参数值的长度(以字节计)。
errormsg
输出。 指向由插件分配的 ASCII 错误消息字符串地址的指针,如果执行 db2secRemapUserid API 不成功,就会返回此错误消息。
errormsglen
输出。 指向一个用于指示 errormsg 参数中的错误消息字符串长度(以字节计)的整数的指针。