Criar links de banco de dados com conectividade heterogênea gerenciada pelo cliente com bancos de dados não Oracle acessíveis publicamente

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 usar links de banco de dados de uma instância do Autonomous Database em um ponto final público, o destino que um Oracle Database Gateway deve ser configurado para usar TCP/IP com autenticação SSL (TCPS). Consulte Configurando a Autenticação Secure Sockets Layer para obter mais informações.

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 de destino:

  1. Copie a wallet autoassinada do Oracle Database Gateway de destino para o Armazenamento de Objetos. Por exemplo, copie 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 Oracle Database Gateway de destino. Armazene os arquivos da wallet em um local seguro. Só compartilhe os arquivos da wallet com usuários autorizados.
  2. Crie credenciais para acessar o Armazenamento de Objetos no qual você armazena o cwallet.sso. Consulte CREATE_CREDENTIAL Procedimento 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 na sua instância do 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.

    As 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.

  5. Na sua instância do Autonomous Database, crie uma credencial para acessar o banco de dados de destino. As credenciais username e password especificadas com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do banco de dados de destino a ser usado quando você cria o link de banco de dados (em que o banco de dados de destino é acessado por meio do Oracle Database Gateway).

    É obrigatório fornecer o parâmetro credential_name.

    Por exemplo:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'DB_LINK_CRED',
        username => 'NICK',
        password => 'password'
      );
    END;
    /
    

    Todos os caracteres do parâmetro username devem estar maiúsculos.

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

  6. Crie um link de banco de dados para acessar 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.

  7. Use o link de banco de dados 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;
/

Em que password é 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.

Veja a seguir 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:

Como Acessar Bancos de Dados não Oracle pelo Autonomous Database usando o Oracle Database Gateway

Para obter informações adicionais, consulte: