db2secServerAuthPluginInit -Inicializar plug-in de autenticação do servidor
A API db2secServerAuthPluginInit é a API de inicialização para o plug-in de autenticação do servidor que o gerenciador de banco de dados Db2® liga imediatamente após carregar o plug-in.
No caso do GSS-API, o plug-in é responsável por preencher o nome principal do servidor no parâmetro serverPrincipalName dentro da estrutura gssapi_server_auth_functions no momento da inicialização e fornecer a alça de credencial do servidor no parâmetro serverCredHandle dentro da estrutura gssapi_server_auth_functions . A liberação da memória alocada para manter o nome principal e a alça de credencial deve ser feita pela API db2secServerAuthPluginTerm chamando as APIs gss_release_name e gss_release_cred .
Sintaxe da API e da estrutura de dados
SQL_API_RC SQL_API_FN db2secServerAuthPluginInit
( db2int32 version,
void *server_fns,
db2secGetConDetails *getConDetails_fn,
db2secLogMessage *logMessage_fn,
char **errormsg,
db2int32 *errormsglen );Parâmetros da API db2secServerAuthPluginInit
- versão
- Entrada. O número de versão mais alto da API que o gerenciador de banco de dados Db2 suporta atualmente. O valor DB2SEC_API_VERSION (em db2secPlugin.h) contém o número de versão mais recente da API que o gerenciador de banco de dados Db2 suporta atualmente.
- funções_do_servidor
- Saída. Um ponteiro para a memória fornecido pelo gerenciador de banco de dados Db2 para uma estrutura db2secGssapiServerAuthFunctions_<version_number> (também conhecida como gssapi_server_auth_functions_<version_number>), se a autenticação GSS-API for usada, ou uma estrutura db2secUseridPasswordServerAuthFunctions_<version_number> (também conhecida como userid_password_server_auth_functions_<version_number>), se a autenticação userid / password for usada. A estrutura db2secGssapiServerAuthFunctions_<version_number> e a estrutura db2secUseridPasswordServerAuthFunctions_<version_number> contêm ponteiros para as APIs implementadas para o plug-in de autenticação GSS-API e plug-in de autenticação de userid / password.O parâmetro server_fns é escalado como um ponteiro para a estrutura gssapi_server_auth_functions_<version_number> correspondente à versão que o plug-in implementou. O primeiro parâmetro da estrutura gssapi_server_auth_functions_<version_number> ou a estrutura userid_password_server_auth_functions_<version_number> informa ao gerenciador de banco de dadosDb2 a versão das APIs que o plug-in implementou.Nota: O casting é feito apenas se a versão Db2 for superior ou igual à versão das APIs que o plug-in implementou.
Dentro da estrutura gssapi_server_auth_functions_<version_number> ou userid_password_server_auth_functions_<version_number> , o parâmetro plugintype deve ser configurado como um dos DB2SEC_PLUGIN_TYPE_USERID_PASSWORD, DB2SEC_PLUGIN_TYPE_GSSAPIou DB2SEC_PLUGIN_TYPE_KERBEROS. Outros valores podem ser definidos em versões futuras da API.
- getConDetails_fn
- Entrada. Pointer para a API db2secGetConDetails , que é implementada por Db2. A API db2secServerAuthPluginInit pode chamar a API db2secGetConDetails em qualquer uma das outras APIs de autenticação para obter detalhes relacionados à conexão com o banco de dados. Esses detalhes incluem informações sobre o mecanismo de comunicação associado à conexão (como o endereço IP, no caso do TCP/IP), que o roteirista de plug-in pode precisar fazer referência ao tomar decisões de autenticação. Por exemplo, o plug-in poderia despermitir uma conexão para um determinado usuário, a menos que esse usuário esteja se conectando a partir de um endereço IP particular. O uso da API db2secGetConDetails é opcional.
Se a API db2secGetConDetails for chamada em uma situação não envolvendo uma conexão com banco de dados, ele retornará o valor DB2SEC_PLUGIN_NO_CON_DETAILS, caso contrário, retornará 0 no sucesso.
A API db2secGetConDetails leva dois parâmetros de entrada; pConDetails, que é um ponteiro para a estrutura db2sec_con_details_<version_number> , e conDetailsVersion, que é um número de versão indicando qual db2sec_con_details estrutura utilizar. Os valores possíveis são DB2SEC_CON_DETAILS_VERSION_1 quando db2sec_con_details1 é usado ou DB2SEC_CON_DETAILS_VERSION_2 quando db2sec_con_details2. O número de versão recomendado para usar é DB2SEC_CON_DETAILS_VERSION_2.
Mediante um retorno bem-sucedido, a estrutura db2sec_con_details ( db2sec_con_details1 ou db2sec_con_details2) contará com as seguintes informações:- O protocolo utilizado para a conexão com o servidor. A listagem de definições de protocolo pode ser encontrada no arquivo sqlenv.h (localizado no diretório include ) (SQL_PROTOCOL_ *). Essas informações são preenchidas no parâmetro clientProtocol .
- O endereço TCP/IP da entrada connect para o servidor se o clientProtocol for SQL_PROTOCOL_TCPIP ou SQL_PROTOCOL_TCPIP4. Essas informações são preenchidas no parâmetro clientIPAddress .
- O nome do banco de dados ao qual o cliente está tentando se conectar. Isso não será configurado para anexos de instância. Essas informações são preenchidas nos parâmetros dbname e dbnameLen .
- Um bit de informação de conexão-mapa que contém os mesmos detalhes conforme documentado no parâmetro connection_details da API db2secValidatePassword . Essas informações são preenchidas no parâmetro connect_info_bitmap .
- O endereço TCP/IP da entrada connect para o servidor se o clientProtocol for SQL_PROTOCOL_TCPIP6. Essas informações são preenchidas no parâmetro clientIP6Address e ele só está disponível se DB2SEC_CON_DETAILS_VERSION_2 for usado para a chamada API db2secGetConDetails .
- logMessage_fn
- Entrada. Um ponteiro para a API db2secLogMessage , que é implementada pelo gerenciador de banco de dados Db2 . A API db2secClientAuthPluginInit pode chamar a API db2secLogMessage para registrar mensagens nos arquivos de log db2diag para fins de depuração ou informativos. O primeiro parâmetro (level) de db2secLogMessage API especifica o tipo de erros de diagnóstico que serão registrados nos arquivos de log db2diag e os dois últimos parâmetros são a string de mensagem e seu comprimento. Os valores válidos para o primeiro parâmetro de db2secLogMessage API (definido em db2secPlugin.h) são:
- DB2SEC_LOG_NONE (0): Sem registro
- DB2SEC_LOG_CRITICAL (1): Severo Erro encontrado
- DB2SEC_LOG_ERROR (2): Erro encontrado
- DB2SEC_LOG_WARNING (3): Aviso
- DB2SEC_LOG_INFO (4): Informativo
O texto da mensagem aparecerá nos arquivos de log db2diag apenas se o valor do parâmetro level da API db2secLogMessage for menor ou igual ao parâmetro de configuração do gerenciador de banco de dados diaglevel .
Assim, por exemplo, se você usar o valor DB2SEC_LOG_INFO , o texto da mensagem aparecerá nos arquivos de log db2diag apenas se o parâmetro de configuração do gerenciador de banco de dados diaglevel estiver configurado como 4.
- 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 db2secServerAuthPluginInit 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 .