Criar Links de Banco de Dados com Conectividade Heterogênea Gerenciada pelo Cliente para Bancos de Dados não Oracle Acessíveis Publicamente

Use DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK para criar links de banco de dados de um Autonomous Database em uma Infraestrutura Dedicada do Exadata que esteja em um ponto final público para um Oracle Database Gateway para acessar bancos de dados não Oracle.

Um Oracle Database Gateway é um gateway projetado para acessar um sistema não Oracle específico. Usando um Oracle Database Gateway, você pode acessar dados em qualquer lugar de um sistema de banco de dados distribuído sem saber o local dos dados ou como eles são armazenados. O uso de links de banco de dados no Autonomous Database com o Oracle Database Gateway suporta ambientes diferentes e elimina a necessidade de personalizar seus aplicativos para acessar dados de sistemas não Oracle.

Observação:

A criação de links de banco de dados com conectividade heterogênea gerenciada pelo cliente para bancos de dados não Oracle acessíveis publicamente só é suportada com as versões 19.25 e superior para 19c e 23.6 e superior para 23ai.

Tópicos Relacionados

Pré-requisitos

Para usar links de banco de dados de uma instância do Autonomous Database em um ponto final público, faça o seguinte:

  1. Configure o Oracle Database Gateway para acessar um banco de dados não Oracle. Consulte Oracle Database Gateways no Guia do Usuário do Oracle Database 19c Database Heterogeneous Connectivity ou Guia do Usuário do Oracle Database 23ai Database Heterogeneous Connectivity para obter mais detalhes.

    Dependendo do banco de dados ao qual você deseja se conectar, consulte o Guia de Instalação e Configuração correspondente e o Guia do Usuário do Gateway.

    Por exemplo, para o Oracle Database Gateway for SQL Server, consulte:

  2. Configure o Oracle Net Listener para tratar solicitações de entrada no Oracle Database Gateway.

  3. Crie uma wallet autoassinada no Oracle Database Gateway.

  4. Configure o gateway de destino para usar a autenticação TCP/IP com SSL (TCPS). Consulte Configurando a Autenticação de Segurança da Camada de Transporte no Oracle Database 19c Security Guide ou no Oracle Database 23ai Security Guide para obter mais informações.

Procedimento

Use DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK para criar links de banco de dados de uma instância do Autonomous Database em um ponto final público para um Oracle Database Gateway para acessar bancos de dados não Oracle.

Para criar links de banco de dados de uma instância do Autonomous Database em um ponto final público para um gateway de destino:
  1. Copie a wallet autoassinada do gateway de destino, por exemplo, cwallet.sso, que contém os certificados do Oracle Database Gateway para o Armazenamento de Objetos.

    Observação:

    O arquivo da wallet, com o ID do usuário e a senha do Banco de Dados, fornece acesso aos dados disponíveis por meio do gateway de destino. Armazene os arquivos da wallet em um local seguro. Só compartilhe os arquivos da wallet com usuários autorizados.
  2. Criar credenciais para acessar o Armazenamento de Objetos no qual você armazena o cwallet.sso. Consulte o procedimento CREATE_CREDENTIAL para obter informações sobre os parâmetros de nome de usuário e senha para diferentes serviços de armazenamento de objetos.
  3. Crie um diretório no Autonomous Database para o arquivo de wallet cwallet.sso.
    Por exemplo:
    CREATE DIRECTORY dblink_wallet_dir AS 'directory_path_of_your_choice';

    Consulte Criar Diretório no Autonomous Database para obter informações sobre a criação de diretórios.

  4. Use DBMS_CLOUD.GET_OBJECT para fazer upload da wallet autoassinada do gateway de destino para o diretório criado na etapa anterior, DBLINK_WALLET_DIR.
    Por exemplo:
    BEGIN
        DBMS_CLOUD.GET_OBJECT(
            credential_name => 'DEF_CRED_NAME',
            object_uri => 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o/cwallet.sso',
            directory_name => 'DBLINK_WALLET_DIR'
        );
     END;

    Neste exemplo, namespace-string corresponde ao namespace do armazenamento de objetos do Oracle Cloud Infrastructure e bucketname corresponde ao nome do bucket. Consulte Noções Básicas de Namespaces do serviço Object Storage para obter mais informações.

    O credential_name que você usa nesta etapa são as credenciais do Armazenamento de Objetos. Na próxima etapa, você cria as credenciais para acessar o gateway de destino.

    Consulte GET_OBJECT Procedimento e Função para obter mais detalhes.

  5. No Autonomous Database, crie credenciais para acessar o banco de dados de destino. O nome de usuário e a senha especificados com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do banco de dados de destino usadas no link de banco de dados (em que o banco de dados de destino é acessado por meio do Oracle Database Gateway).
    Por exemplo:
    BEGIN
        DBMS_CLOUD.CREATE_CREDENTIAL(
            credential_name => 'DB_LINK_CRED',
            username => 'NICK',
            password => 'password'
        );
    END;/

    O fornecimento do parâmetro credential_name é obrigatório.

    Todos os caracteres do parâmetro username devem estar em letras maiúsculas.

    Esta operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para o nome da credencial.

  6. Crie o link de banco de dados para o gateway de destino usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.
    Por exemplo:
    BEGIN
        DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
            db_link_name =>       'SALESLINK',
            hostname =>           'example.com',
            port =>               '1522',  
            service_name =>       'example_service_name',
            ssl_server_cert_dn => 'ssl_server_cert_dn',
            credential_name =>    'DB_LINK_CRED',
            directory_name =>     'DBLINK_WALLET_DIR',
            gateway_link =>        TRUE
        );
    END;/

    Usuários diferentes de ADMIN exigem privilégios para executar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Consulte CREATE_DATABASE_LINK Procedimento para obter mais informações.

  7. Use o link de banco de dados criado para acessar dados no gateway de destino.
    Por exemplo:
    SELECT * FROM employees@SALESLINK;
Para as credenciais criadas na Etapa 5, as credenciais do Oracle Database Gateway, se a senha do usuário de destino for alterada, você poderá atualizar a credencial que contém as credenciais do usuário de destino da seguinte forma:
BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL(
        credential_name =>'DB_LINK_CRED',
        attribute =>'PASSWORD',
        value=>'password'
    );
END;
/

Onde a senha é a nova senha.

Após essa operação, os links de banco de dados existentes que usam essa credencial continuam funcionando sem que seja necessário eliminar e recriar os links de banco de dados.

Consulte UPDATE_CREDENTIAL Procedimento para obter mais detalhes.

Consulte Como Acessar Bancos de Dados Não Oracle pelo Autonomous Database usando o Oracle Database Gateway para obter um exemplo de como criar um link de banco de dados para um Oracle Database Gateway para acessar um banco de dados do Microsoft SQL Server.

Observação:

Embora o blog acima discuta no contexto do Autonomous Database Serverless, todo o conteúdo desse blog também se aplica ao Autonomous Database on Dedicated Exadata Infrastructure.