Testando a Acessibilidade do Ponto Final do Entra ID
Certifique-se de que o Oracle AI Database possa acessar o ponto final do Entra ID.
Se o seu cliente de banco de dados estiver configurado para obter tokens OAuth2 do ID do Entra da Microsoft, o cliente de banco de dados deverá poder acessar o ponto final do ID do Entra. Execute o seguinte comando para verificar se você tem acesso à Internet:
curl https://login.windows.net/common/discovery/keysUm código de status 200 indica sucesso.
Verifique com o helpdesk de TI as informações de proxy se você não executou este comando com êxito.
Para que um Oracle AI Database aceite tokens Entra ID OAuth2, o banco de dados deve solicitar a chave pública do ponto final do Microsoft Entra ID.
-
Execute o seguinte teste para determinar se o banco de dados pode estabelecer conexão com o ponto final do ID do Microsoft Entra:
SET SERVEROUTPUT ON SIZE 40000 DECLARE req UTL_HTTP.REQ; resp UTL_HTTP.RESP; BEGIN UTL_HTTP.SET_WALLET(path => 'system:'); req := UTL_HTTP.BEGIN_REQUEST('https://login.windows.net/common/discovery/keys'); resp := UTL_HTTP.GET_RESPONSE(req); DBMS_OUTPUT.PUT_LINE('HTTP response status code: ' || resp.status_code); UTL_HTTP.END_RESPONSE(resp); END; /Se esse teste for bem-sucedido, uma mensagem
PL/SQL procedure successfully completedserá exibida.Se as seguintes mensagens forem exibidas, isso significa que uma política de lista de controle de acesso à rede (ACL) do banco de dados bloqueou seu teste e você precisará definir temporariamente uma política de lista de controle de acesso para permitir que você teste isso:
ORA-29273: HTTP request failed ORA-24247: network access denied by access control list (ACL)-
Defina a ACL como a seguir:
BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => '*', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'username_placeholder', principal_type => xs_acl.ptype_db)); END; /Substitua
username_placeholderpelo nome do usuário do banco de dados que está executando o teste. Por exemplo:BEGIN DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE( host => '*', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'DBA_DEBRA', principal_type => xs_acl.ptype_db)); END; / -
Tente executar o teste novamente.
-
Remova a ACL porque agora você não precisa mais dela. Por exemplo, supondo que seu nome de usuário seja
dba_debra:BEGIN DBMS_NETWORK_ACL_ADMIN.REMOVE_HOST_ACE( host => '*', ace => xs$ace_type(privilege_list => xs$name_list('connect'), principal_name => 'DBA_DEBRA', principal_type => xs_acl.ptype_db)); END; /
-
Se o banco de dados não puder se conectar com o ponto final do ID do Microsoft Entra, mesmo depois de definir a política de ACL, você provavelmente precisará definir o pacote HTTP_PROXY para seu banco de dados. Revise os tópicos listados em Tópicos Relacionados, dependendo se você estiver usando um ambiente padrão do Oracle AI Database ou um ambiente RAC do Oracle Real Application Clusters. O administrador da rede deverá ser capaz de informar qual deve ser a definição HTTP_PROXY correta.