Usar o Controlador de Serviços do Azure para Acessar Recursos do Azure

Você pode usar um controlador de serviços do Azure com o Autonomous Database para acessar recursos do Azure sem precisar criar e armazenar seus próprios objetos de credencial no banco de dados.

Ativar Controlador de Serviços do Azure

Ative a autenticação do controlador de serviços do Azure para permitir que o Autonomous Database acesse os serviços do Azure sem fornecer credenciais de longo prazo.

Observação

Para usar o Autonomous Database com a autenticação do principal de serviços do Azure, você precisa de uma conta do Microsoft Azure. Consulte Microsoft Azure para obter detalhes.

Para ativar a autenticação do controlador de serviços do Azure no Autonomous Database:

  1. Obtenha seu ID de tenant do Microsoft Azure Active Directory.

    Consulte Como encontrar o ID de tenant do Azure Active Directory para obter mais informações.

  2. Ative o controlador de serviços do Azure com DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH.

    Por exemplo:

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user',
            params   => JSON_OBJECT('azure_tenantid' value 'azure_tenantID'));
    END;
    /

    Isso ativa a autenticação do controlador de serviços do Azure e cria um aplicativo do Azure no Autonomous Database.

    If you want the specified user to have privileges to enable Azure service principal for other users, set the params parameter grant_option to TRUE.

    Por exemplo:

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user',
            params   => JSON_OBJECT('grant_option' value TRUE, 
                                    'azure_tenantid' value 'azure_tenantID'));
    END;
    /

    Após a execução desse comando, o adb_user poderá ativar o controlador de serviços do Azure para outro usuário. Por exemplo, se você se conectar como adb_user, poderá executar o seguinte comando:

    BEGIN
        DBMS_CLOUD_ADMIN.ENABLE_PRINCIPAL_AUTH(
            provider => 'AZURE',
            username => 'adb_user2');
    END;
    /

Consulte Procedimento ENABLE_PRINCIPAL_AUTH para obter mais informações.

Fornecer consentimento de aplicativo do Azure e designar atribuições

Para acessar recursos do Azure no Autonomous Database com autenticação do controlador de serviços do Azure, você deve concordar com o aplicativo do Azure e designar atribuições para permitir o acesso aos recursos do Azure.

Para fornecer consentimento de aplicativo do Azure e designar atribuições, execute as seguintes etapas:

  1. No Autonomous Database, consulte CLOUD_INTEGRATIONS.

    Por exemplo:

    SELECT param_name, param_value FROM CLOUD_INTEGRATIONS;
    
    PARAM_NAME        PARAM_VALUE
    --------------- ------------------------------------------------------------------------------------------------------------------------------------------
    azure_tenantid    29981886-6fb3-44e3-82ab-d870b0e8e7eb
    azure_consent_url https://login.microsoftonline.com/f8cdef31-91255a/oauth2/v2.0/authorize?client_id=d66f1b5-1250d5445c0b&response_type=code&scope=User.read
    azure_app_name    ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA

    A view CLOUD_INTEGRATIONS está disponível para o usuário ADMIN ou para um usuário com a atribuição DWROLE.

  2. Em um browser, abra o URL de consentimento do Azure, especificado pelo parâmetro azure_consent_url.

    Por exemplo, copie e digite o URL no browser:

    https://login.microsoftonline.com/f8cdef31-91255a/oauth2/v2.0/authorize?client_id=d66f1b5-1250d5445c0b&response_type=code&scope=User.read

    A página Permissões solicitadas é aberta e mostra uma solicitação de consentimento, semelhante à seguinte:

    Veja a seguir a descrição da ilustração azure_consent.png
    Descrição da ilustração azure_consent.png
  3. Para fornecer consentimento, clique em Aceitar.
  4. Na console do Microsoft Azure, designe as atribuições que você deseja conceder para permitir o acesso aos recursos especificados do Azure.

    Por exemplo, se você quiser acessar o Azure Blob Storage no Autonomous Database, designe atribuições para que o aplicativo Azure (o controlador de serviços) tenha acesso ao Azure Blob Storage.

    Observação

    Para trabalhar com o Azure Blob Storage, você precisa de uma conta de armazenamento do Azure. Se você não tiver uma conta de armazenamento do Azure, crie. Consulte Criar uma conta de armazenamento para obter mais informações.
    1. Na console do Microsoft Azure, em Serviços do Azure, selecione Contas de armazenamento.
    2. Em Contas de armazenamento, clique na conta de armazenamento à qual você deseja conceder acesso de controlador de serviços.
    3. À esquerda, clique em Controle de Acesso (IAM).
    4. Na área superior, clique em + Adicionar → Adicionar designação de atribuição.
    5. Na área de pesquisa, digite o texto para restringir a lista de atribuições que você vê. Por exemplo, digite Blob de Armazenamento para mostrar as atribuições disponíveis que contêm Blob de Armazenamento.
    6. Selecione uma ou mais atribuições, conforme apropriado, para o acesso que você deseja conceder. Por exemplo, selecione Colaborador de Dados Blob de Armazenamento.
    7. Clique em Próximo.
    8. Em Adicionar designação de atribuição, em Membros, clique em + Selecionar membros.
    9. Em Selecionar membros, no campo de seleção, informe azure_app_name listado na Etapa 1 (a coluna param_value da view CLOUD_INTEGRATIONS).
    10. Selecione o aplicativo.

      Por exemplo, clique em ADBS_APP_OCID1.AUTONOMOUSDATABASE.REGION1.SEA.ANZWKLJSZLYNB3AAWLYL3JVC4ICEXLB3ZG6WTCX735JSSY2NRHOBU4DZOOVA

    11. Clique em Selecionar.
    12. Clique em Verificar + designar.
  5. Clique em Verificar + Designar novamente.

    Depois de designar uma atribuição, você precisará aguardar, uma vez que as designações de atribuição podem levar até cinco minutos para serem propagadas no Azure.

Esse exemplo mostra as etapas para conceder atribuições de acesso ao Azure Blob Storage. Se você quiser fornecer acesso a outros serviços do Azure, precisará executar etapas equivalentes para os serviços adicionais do Azure para permitir que o aplicativo do Azure (o controlador de serviços) acesse o serviço do Azure.

Usar o Controlador de Serviços do Azure com DBMS_CLOUD

Quando você faz chamadas DBMS_CLOUD para acessar recursos do Azure e especifica o nome da credencial como AZURE$PA, a autenticação no lado do Azure acontece usando o controlador de serviços do Azure.

Se você ainda não tiver feito isso, execute as etapas de pré-requisito obrigatórias:

Para usar um procedimento ou uma função DBMS_CLOUD com o controlador de serviços do Azure, especifique AZURE$PA como o nome da credencial. Por exemplo, você pode acessar o Armazenamento Blob do Azure usando as seguintes credenciais do controlador de serviços do Azure:

SELECT * FROM DBMS_CLOUD.LIST_OBJECTS('AZURE$PA', 'https://treedata.blob.core.windows.net/treetypes/');

OBJECT_NAME BYTES CHECKSUM                 CREATED              LAST_MODIFIED        
----------- ----- ------------------------ -------------------- -------------------- 
trees.txt      58 aCB1qMOPVobDLCXG+2fcvg== 2022-04-07T23:03:01Z 2022-04-07T23:03:01Z

Se você comparar as etapas necessárias para acessar o armazenamento de objetos, conforme mostrado em Criar Credenciais e Copiar Dados para uma Tabela Existente, observe que a Etapa 1, de criação de credenciais, não é necessária porque você está usando um controlador de serviços do Azure chamado AZURE$PA.

Desativar Principal de Serviço do Azure

Para desativar o acesso aos recursos do Azure do Autonomous Database com o controlador de serviços do Azure, use DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH.

Para desativar o controlador de serviços do Azure no Autonomous Database:

BEGIN
    DBMS_CLOUD_ADMIN.DISABLE_PRINCIPAL_AUTH(
        provider => 'AZURE',
        username => 'adb_user');
END;
/

Quando o valor provider é AZURE e username é um usuário diferente de ADMIN, o procedimento chama os privilégios do usuário especificado. Nesse caso, o usuário ADMIN e outros usuários podem continuar a usar ADMIN.AZURE$PA e o aplicativo criado para a instância do Autonomous Database permanece na instância.

Quando o valor provider é AZURE e username é ADMIN, o procedimento desativa a autenticação baseada no controlador de serviços do Azure e exclui o aplicativo controlador de serviços do Azure na instância do Autonomous Database. Nesse caso, se você quiser ativar o controlador de serviços do Azure, execute todas as etapas necessárias para usar o principal de serviço do Azure novamente, incluindo as seguintes:

Consulte Procedimento DISABLE_PRINCIPAL_AUTH para obter mais informações.

Observações da Entidade de Serviço do Azure

Observações para usar o controlador de serviços do Azure.

  • Clonando uma instância do Autonomous Database com o controlador de serviços do Azure: Quando você clona uma instância com o controlador de serviços do Azure ativado, a configuração do controlador de serviços do Azure não é transferida para o clone. Execute as etapas para ativar o controlador de serviços do Azure no clone se quiser ativar o controlador de serviços do Azure em uma instância clonada.