API db2secValidatePassword -Validar senha
Fornece um método para realizar autenticação de ID de usuário e senha durante uma operação de conexão de banco de dados.
Quando a API é executada no lado do servidor, o código da API é executado com os privilégios do proprietário da instância.
O roteirista de plug-in deve levar em consideração os cenários anteriores se a autenticação requer privilégios especiais (como o acesso ao sistema de nível de raiz no UNIX).
Esta API deve retornar o valor DB2SEC_PLUGIN_OK (sucesso) se a senha for válida, ou um código de erro como DB2SEC_PLUGIN_BADPWD se a senha for inválida.
Sintaxe da API e da estrutura de dados
SQL_API_RC ( SQL_API_FN *db2secValidatePassword)
( const char *userid,
db2int32 useridlen,
const char *usernamespace,
db2int32 usernamespacelen,
db2int32 usernamespacetype,
const char *password,
db2int32 passwordlen,
const char *newpasswd,
db2int32 newpasswdlen,
const char *dbname,
db2int32 dbnamelen,
db2Uint32 connection_details,
void **token,
char **errormsg,
db2int32 *errormsglen );Parâmetros da API db2secValidatePassword
- userid
- Entrada. O ID do usuário cuja senha deve ser verificada.
- identificação do usuário
- Entrada. Comprimento em bytes do valor do parâmetro userid .
- espaço de nomes do usuário
- Entrada. O espaço de nomes a partir do qual o ID do usuário foi obtido.
- espaço do nome de usuário
- Entrada. Comprimento em bytes do valor do parâmetro usernamespace .
- tipo de nome de usuário
- Entrada. O tipo de espaço de nomes. Os valores válidos para o parâmetro usernamespacetype (definido em db2secPlugin.h) são:
- DB2SEC_NAMESPACE_SAM_COMPATIBLE Corresponde a um estilo de username como domain\myname
- DB2SEC_NAMESPACE_USER_PRINCIPAL Corresponde a um estilo de nome do usuário como myname@domain.ibm.com
- Senha
- Entrada. A senha a ser verificada.
- comprimençãoda senha
- Entrada. Comprimento em bytes do valor do parâmetro password .
- nova senha
- Entrada. Uma nova senha, se a senha deve ser alterada. Se nenhuma alteração for solicitada, este parâmetro será configurado como NULL. Se este parâmetro não for NULL, a API deverá validar a senha antiga antes de alterá-la para a nova senha. A API não tem que cumprir uma solicitação para alterar a senha, mas se ela não o fizer, deve retornar imediatamente com o valor de retorno DB2SEC_PLUGIN_CHANGEPASSWORD_NOTSUPPORTED sem validar a senha antiga.
- novo comprimento da senha
- Entrada. Comprimento em bytes do valor do parâmetro newpasswd .
- dbname
- Entrada. O nome do banco de dados estar conectado a. A API é livre para ignorar o parâmetro dbname , ou pode retornar o valor DB2SEC_PLUGIN_CONNECTIONREFUSED se ele tiver uma política de restrição de acesso a determinados bancos de dados a usuários que de outra forma possuem senhas válidas. Este parâmetro pode ser NULL.
- dbnamelen
- Entrada. Comprimento em bytes do valor do parâmetro dbname . Este parâmetro é configurado como 0 se dbname parâmetro for NULL.
- detalhes_da_conexão
- Entrada. Um parâmetro de 32-bit bits do qual 3 bits são usados atualmente para armazenar as seguintes informações:
- O bit mais à direita indica se a origem do ID do usuário é o padrão da API db2secGetDefaultLoginContext , ou foi explicitamente fornecido durante a conexão.
- O bit segunda-da-direita indica se a conexão é local (usando o Inter Process Communication (IPC) ou uma conexão de um dos nós no db2nodes.cfg no ambiente de banco de dados particionado), ou remoto (através de uma rede ou loopback). Isto dá à API a capacidade de decidir se clientes na mesma máquina podem se conectar ao servidor Db2 sem uma senha. Devido ao plugin ID/senha do usuário baseado em sistema operacional padrão, as conexões locais são permitidas sem uma senha de clientes na mesma máquina (supondo que o usuário tenha privilégios de conexão).
- O bit de terceira a partir da direita indica se o gerenciador de banco de dados Db2 está ligando para a API do lado do servidor ou do cliente.
Os valores de bits são definidos em db2secPlugin.h:- DB2SEC_USERID_FROM_OS (0x00000001) Indica que o ID do usuário é obtido a partir de OS e não explicitamente dado na instrução connect.
- DB2SEC_CONNECTION_ISLOCAL (0x00000002) Indica uma conexão local.
- DB2SEC_VALIDATING_ON_SERVER_SIDE (0x0000004) Indica se o gerenciador de banco de dados Db2 está ligando do lado do servidor ou do lado do cliente para validar senha. Se esse valor de bit for configurado, então o gerenciador de banco de dados Db2 está ligando do lado do servidor; caso contrário, ele está ligando do lado do cliente.
O comportamento padrão do sistema de banco de dados Db2 para uma autenticação implícita é permitir a conexão sem qualquer validação de senha. No entanto, desenvolvedores de plug-in podem despermitir a autenticação implícita, retornando um erro DB2SEC_PLUGIN_BADPASSWORD .
- símbolo
- Entrada / saída. Um ponteiro para dados que podem ser passados como parâmetro para chamadas de API subsequentes durante a conexão atual. Possíveis APIs que podem ser chamadas incluem API db2secGetAuthIDs e API db2secGetGroupsForUser .
- ERRORMSG
- Saída. Um ponteiro para o endereço de uma string de mensagem de erro ASCII alocada pelo plug-in que pode ser retornado neste parâmetro se a execução da API db2secValidatePassword não for bem-sucedida.
- mensagem de erro
- Saída. Um ponteiro para um inteiro que indica o comprimento em bytes da string de mensagem de erro no parâmetro errormsg .