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