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.

Nota: Quando a API é executada no lado do cliente, o código da API é executado com os privilégios do usuário executando a instrução CONNECT. Esta API só será chamada no lado do cliente se o parâmetro de configuração authentication for configurado como CLIENTE.

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
Atualmente, o sistema de banco de dados Db2® suporta apenas o valor DB2SEC_NAMESPACE_SAM_COMPATIBLE. Quando o ID do usuário não estiver disponível, o parâmetro usernamespacetype será configurado para o valor DB2SEC_USER_NAMESPACE_UNDEFINED (definido em db2secPlugin.h).
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 .