Criar links de banco de dados para bancos de dados não Oracle com conectividade heterogênea gerenciada pela Oracle

O suporte do Autonomous Database para conectividade heterogênea gerenciada pela Oracle facilita a criação de links de banco de dados para bancos de dados não Oracle.

Quando você usa links de banco de dados com conectividade heterogênea gerenciada pela Oracle, o Autonomous Database configura e define a conexão com o banco de dados não Oracle.

Observação

Com a conectividade heterogênea gerenciada pela Oracle, o suporte é para conexões somente para consulta no banco de dados remoto. Ou seja, as atualizações não são suportadas ao usar conectividade heterogênea gerenciada pela Oracle.

Veja a seguir um pré-requisito para usar a conectividade heterogênea gerenciada pela Oracle com o Autonomous Database:

  • Quando o banco de dados de destino estiver em um ponto final público, o banco de dados deverá ser configurado para permitir conexões SSL/TLS de entrada com certificados assinados pela CA.

    A conectividade heterogênea gerenciada pela Oracle suporta conexões com serviços de banco de dados de destino em pontos finais privados (por exemplo, você pode estabelecer conexão com o Oracle MySQL Database Service quando o serviço está em um ponto final privado). Quando você se conecta a um banco de dados não oracle com conectividade heterogênea gerenciada pela Oracle em um ponto final privado, a conexão usa o protocolo TCP e não requer que SSL/TLS seja configurado no banco de dados de destino.

    Consulte Create Database Links to Oracle MySQL on a Private Endpoint with Oracle-Managed Heterogeneous Connectivity para obter mais informações.

Para criar links de banco de dados para um banco de dados não Oracle usando a conectividade heterogênea gerenciada pela Oracle, faça o seguinte:

  1. No Autonomous Database, crie credenciais para acessar o banco de dados de destino. Os parâmetros username e password especificados com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do banco de dados de destino usadas no link de banco de dados.

    Por exemplo:

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

    Essa operação armazena as credenciais no banco de dados em um formato criptografado. Você pode usar qualquer nome para a credencial. É obrigatório fornecer o parâmetro credential_name.

    Para acessar o Google Analytics, o Google BigQuery, o Google Drive, o Youtube, ServiceNow ou o Microsoft SharePoint com OAuth2, a credencial deve incluir o parâmetro params com o valor gcp_oauth2.

    Por exemplo:

    BEGIN
      DBMS_CLOUD.CREATE_CREDENTIAL(
        credential_name => 'SERVICENOW_OAUTH',
        params => JSON_OBJECT(
                     'gcp_oauth2' value JSON_OBJECT(
                            'client_id' value 'CLIENT_ID', 
                            'client_secret' value 'CLIENT_SECRET', 
                            'refresh_token' value 'Refresh_Token')));
    END;
    /

    Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.

  2. Crie o link de banco de dados para o banco de dados de destino usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por exemplo, para criar um link de banco de dados para o AWS Redshift:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name => 'AWSREDSHIFT_LINK', 
              hostname => 'example.com', 
              port => '5439',
              service_name => 'example_service_name',
              credential_name => 'AWS_REDSHIFT_LINK_CRED',
              gateway_params => JSON_OBJECT('db_type'  value 'awsredshift'),
              ssl_server_cert_dn => NULL);
    END;
    /

    O service_name é o nome do banco de dados não Oracle.

    O valor gateway_params db_type fornecido deve ser um dos valores suportados:

    Valor db_type Tipo de Banco de Dados

    awsredshift

    Amazon Redshift

    azure

    Microsoft SQL Server

    Azure SQL

    Azure Synapse Analytics

    db2

    IBM Db2

    google_analytics

    Google Analytics

    google_bigquery

    Google BigQuery

    google_drive

    Google Drive

    hive

    Apache Hive

    mongodb

    MongoDB

    mysql

    MySQL

    mysql_community

    MySQL Community Edition

    postgres

    PostgreSQL

    salesforce

    Salesforce

    servicenow ServiceNow
    sharepoint Microsoft SharePoint

    snowflake

    Snowflake

    youtube

    YouTube

    O Autonomous Database configura e trata automaticamente a conexão segura com um banco de dados de destino e suas conexões são totalmente criptografadas. A conectividade heterogênea gerenciada pela Oracle é pré-configurada com uma wallet que contém a maioria dos certificados SSL comuns de raiz confiável e intermediários. Portanto, NULL deve ser fornecido como o valor do parâmetro ssl_server_cert_dn.

    Para garantir a segurança ao usar links de banco de dados com a conectividade heterogênea gerenciada pela Oracle, a porta de conexão é restrita e deve ter SSL/TLS ativado. Você especifica a porta do banco de dados de destino com o parâmetro port.

    Consulte Tipos e Portas de Banco de Dados de Conectividade Heterogênica Gerenciada pela Oracle para obter a lista de tipos de banco de dados não Oracle suportados.

    A view HETEROGENEOUS_CONNECTIVITY_INFO fornece informações sobre os tipos de Conectividade Heterogênea da Oracle suportados e mostra uma amostra de código PL/SQL para cada tipo suportado. Consulte Acessar Amostras e Informações de Conectividade Heterogênea para obter mais informações.

    Quando você especifica o parâmetro gateway_params, para alguns valores db_type, parâmetros gateway_params adicionais são suportados:

    Valor db_type Parâmetros de Gateway Suportados com db_type Especificado
    azure

    Quando o valor db_type é azure, há dois parâmetros opcionais, auth_method e domain para suportar a autenticação NTLM/AD.

    Quando NTLMv2 estiver configurado, defina auth_method=10 e domain como o valor de domínio do Windows.

    Para usar uma senha do Azure Active Directory, defina auth_method=13. Não use auth_method=13 para acessar um Banco de Dados local da Oracle.

    Consulte Método de Autenticação do Microsoft SQL Server para obter mais informações.

    google_analytics

    Quando o valor db_type for google_analytics, hostname não será usado e você poderá fornecer um valor como example.com.

    Para db_type google_analytics, a credencial deve ser do tipo OAuth usando o parâmetro params com os valores gcp_oauth2 especificados (client_id, client_secret e refresh_token). Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.

    google_bigquery

    Quando db_type é google_bigquery, o parâmetro project é válido. Esse parâmetro especifica o nome do projeto em google_bigquery e é obrigatório.

    Quando o valor db_type for google_bigquery, hostname não será usado e você poderá fornecer um valor como example.com.

    Para db_type google_bigquery, a credencial deve ser do tipo OAuth usando o parâmetro params com os valores gcp_oauth2 especificados (client_id, client_secret e refresh_token). Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.

    google_drive

    Para db_type google_drive, a credencial fornecida com DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK deve ser um tipo de credencial OAuth usando o parâmetro params com valores de gcp_oauth2 especificados (client_id, client_secret e refresh_token).

    Para se conectar ao Google Drive e obter dados, você deve fornecer os parâmetros de gateway directory_name e file_name. Esses parâmetros especificam um arquivo de modelo (arquivo REST automático) que mapeia a resposta JSON para o modelo relacional. O arquivo de modelo especifica os pontos finais, o mapeamento de tabela e o código de resposta HTTP para processar a resposta JSON. Consulte Sintaxe de arquivo de modelo e Arquivo de modelo de exemplo para obter mais informações.

    Ao usar o parâmetro gateway_params com db_type google_drive, você deve fornecer o parâmetro gateway_params db_type com o valor 'google_drive' e os parâmetros directory_name e file_name, juntamente com as credenciais do tipo OAuth:

    O parâmetro directory_name especifica o diretório com o arquivo de configuração REST. Você poderia criar esse diretório da seguinte forma:

    create or replace directory google_drive_dir as 'GOOGLE_DRIVE_DIR';

    Obtenha e faça download do arquivo REST automático para o diretório especificado. Por exemplo:

    exec DBMS_CLOUD.get_object('google_drive_dir_cred',
         'https://objectstorage.<...>/google_drive.rest','GOOGLE_DRIVE_DIR');

    Defina o valor file_name como o nome do arquivo REST automático que você baixou, "google_drive.rest". Em seguida, você pode usar o arquivo de configuração REST com o OAuth 2.0.

    hive

    Quando db_type é hive, o parâmetro http_path é válido. Esse parâmetro especifica o valor HttpPath, se necessário, para estabelecer conexão com a instância do Hive.

    salesforce

    Ao usar o parâmetro gateway_params com db_type salesforce, forneça a opção security_token. O token de segurança é um código alfanumérico que faz distinção entre maiúsculas e minúsculas.

    Consulte Redefinir Seu Token de Segurança para obter mais informações.

    Ao usar o parâmetro gateway_params com db_type salesforce, forneça o parâmetro hostname correto.

    O Salesforce fornece duas formas de URLs para a conta de serviço do Salesforce:

    • xxxx.develop.lightning.force.com formulário de URL
    • Formulário xxxxmy.salesforce.com do URL, conforme mostrado na guia Exibir perfil.

    A Conectividade Heterogênea Gerenciada pela Oracle só suporta o form xxxxmy.salesforce.com do URL para o valor do parâmetro hostname.

    servicenow

    Para estabelecer conexão com ServiceNow e obter dados, forneça os parâmetros de gateway directory_name e file_name. Esses parâmetros especificam um arquivo de modelo (arquivo de configuração REST) que mapeia a resposta JSON para o modelo relacional. O arquivo de modelo especifica os pontos finais, o mapeamento de tabela e o código de resposta HTTP para processar a resposta JSON. Consulte Sintaxe de arquivo de modelo e Arquivo de modelo de exemplo para obter mais informações.

    Quando você usa o parâmetro gateway_params com db_type servicenow, há duas opções suportadas:

    • Autenticação Básica: você deve fornecer o parâmetro gateway_params db_type com o valor 'servicenow' e fornecer os parâmetros directory_name e file_name juntamente com as credenciais do tipo de nome de usuário/senha.

    • Autenticação OAuth 2.0: você deve fornecer o parâmetro gateway_params db_type com o valor 'servicenow' e os parâmetros directory_name, file_name e token_uri, juntamente com as credenciais do tipo OAuth.

      Para a autenticação OAuth 2.0 com db_type servicenow, a credencial deve ser do tipo OAuth usando o parâmetro params com os valores gcp_oauth2 especificados (client_id, client_secret e refresh_token). Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.

    O parâmetro directory_name especifica o diretório com o arquivo de configuração REST ServiceNow. Você poderia criar esse diretório da seguinte forma:

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Obtenha e faça download do arquivo de configuração REST ServiceNow para o diretório especificado. Por exemplo:

    exec DBMS_CLOUD.get_object('servicenow_dir_cred',
         'https://objectstorage.<...>/servicenow.rest','SERVICENOW_DIR');

    Defina o valor file_name como o nome do arquivo de configuração REST que você baixou, "servicenow.rest".

    Em seguida, você pode usar o arquivo de configuração REST ServiceNow com autenticação básica ou OAuth2.0. Consulte HETEROGENEOUS_CONNECTIVITY_INFO View para obter amostras.

    sharepoint

    Quando você usa o parâmetro gateway_params com db_type sharepoint, especifique também valores para auth_uri, scope, service_url e token_uri.

    Para db_type sharepoint, a credencial fornecida com DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK deve ser do tipo OAuth usando o parâmetro params com os valores gcp_oauth2 especificados (client_id, client_secret e refresh_token). Consulte Procedimento CREATE_CREDENTIAL para obter mais informações. Gere o refresh_token para tenant_id.sharepoint.com/.default offline_access. Consulte o seguinte para obter mais informações: Determinar o escopo e autenticação OAuth 2.0.

    Defina valores para gateway_params para db_type sharepoint:

    snowflake

    Quando você usar o parâmetro gateway_params com db_type snowflake, use o identificador da conta Snowflake como o parâmetro hostname. Nesse caso, o driver adiciona snowflakecomupting.com, para que você não passe essa parte do nome do host explicitamente. Para localizar seu identificador da conta do Snowflake, consulte Formatos de Identificador de Conta por Plataforma e Região da Nuvem.

    Por exemplo: para a conta Snowflake:

    https://example-marketing_test_account.snowflakecomputing.com

    Defina o valor hostname como "example-marketing_test_account".

    Quando db_type é SNOWFLAKE, os parâmetros opcionais: role, schema e warehouse são válidos. Esses valores especificam um esquema, atribuição ou valor de depósito diferente do padrão. Por exemplo:

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
    youtube

    Para estabelecer conexão com YouTube e obter dados, forneça os parâmetros directory_name e file_name. Esses parâmetros especificam um arquivo de modelo (arquivo de configuração REST) que mapeia a resposta JSON para o modelo relacional. O arquivo de modelo especifica os pontos finais, o mapeamento de tabela e o código de resposta HTTP para processar a resposta JSON. Consulte Sintaxe de arquivo de modelo e Arquivo de modelo de exemplo para obter mais informações.

    Para db_type youtube, a credencial deve ser do tipo OAuth usando o parâmetro params com os valores gcp_oauth2 especificados (client_id, client_secret e refresh_token). Consulte CREATE_CREDENTIAL Procedimento para obter mais informações.

    O parâmetro directory_name especifica o diretório com o arquivo de configuração REST do youtube.

    Por exemplo, para criar esse diretório e adicionar o conteúdo necessário:

    1. Crie um diretório na instância do Autonomous Database:

      create or replace directory youtube_dir as 'YOUTUBE_DIR';
    2. Obtenha e faça download do arquivo de configuração REST de descanso automático para o diretório especificado. Por exemplo:

      exec DBMS_CLOUD.get_object('youtube_dir_cred',
           'https://objectstorage.<...>/youtube.rest','YOUTUBE_DIR');
    3. Defina o valor file_name como o nome do arquivo de configuração REST que você baixou, 'youtube.rest'.

    Em seguida, você pode usar o arquivo de configuração REST com o OAuth2.0. Consulte HETEROGENEOUS_CONNECTIVITY_INFO View para obter amostras.

    Consulte CREATE_DATABASE_LINK Procedimento para obter mais informações.

  3. Use o link de banco de dados para acessar dados no banco de dados de destino.

    Por exemplo:

    SELECT count(*) FROM sales@AWSREDSHIFT_LINK

    O nome da tabela especificado quando você usa SELECT com o Google BigQuery deve estar entre aspas. Por exemplo:

    SELECT count(*) FROM "sales"@GOOGLE_BIGQUERY_LINK
Observação

Para as credenciais criadas na Etapa 1, as credenciais do banco de dados de destino, 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 => 'AWS_REDSHIFT_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.

Para obter informações adicionais, consulte:

Criar links de banco de dados para o Oracle MySQL em um ponto final privado com conectividade heterogênea gerenciada pela Oracle

O suporte ao Autonomous Database para conectividade heterogenea gerenciada pela Oracle facilita a criação de links de banco de dados para o Oracle MySQL Database Service em um ponto final privado. Quando você usa links de banco de dados com conectividade heterogenea gerenciada pela Oracle, o Autonomous Database configura e define a conexão com o Oracle MySQL Database Service.

Estes são pré-requisitos para usar a conectividade heterogênea gerenciada pela Oracle com o Oracle MySQL Database Service em um ponto final privado:

  • Crie um nome de DNS usando uma Zona de DNS privada que aponte para o IP privado do Oracle MySQL Database Service na VCN. Consulte DNS Privado.
  • Crie um Autonomous Database com um Ponto Final Privado na mesma sub-rede.
  • Configure a VCN do Oracle MySQL Database Service para permitir conexões de entrada na porta 3306.

Para criar links de banco de dados para um Oracle MySQL Database Service em um ponto final privado usando conectividade heterogênea gerenciada pela Oracle, faça o seguinte:

  1. No Autonomous Database, crie credenciais para acessar o Oracle MySQL Database Service. Os parâmetros username e password especificados com DBMS_CLOUD.CREATE_CREDENTIAL são as credenciais do Oracle MySQL Database Service usadas no link de banco de dados.
    Observação

    É obrigatório fornecer o parâmetro credential_name.

    Por exemplo:

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

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

  2. Crie o link de banco de dados para o Oracle MySQL Database Service usando DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por exemplo, para criar um link de banco de dados:

    BEGIN
         DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
              db_link_name => 'MYSQL_LINK', 
              hostname => 'mysql.example.com', 
              port => '3306',
              service_name => 'mysql.example_service_name',
              ssl_server_cert_dn => NULL,
              credential_name => 'MYSQL_LINK_CRED',
              private_target => TRUE,
              gateway_params => JSON_OBJECT('db_type' value 'mysql'));
    END;
    /
  3. Use o link de banco de dados para acessar dados no banco de dados de destino.

    Por exemplo:

    SELECT count(*) FROM sales@MYSQL_LINK
Observação

Para as credenciais criadas na Etapa 1, as credenciais do banco de dados de destino, 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 => 'MYSQL_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.

Para obter informações adicionais, consulte:

Tipos e portas de banco de dados de conectividade heterogênea gerenciada pela Oracle

Mostra os bancos de dados não Oracle aos quais você pode se conectar pelo Autonomous Database com conectividade heterogênea gerenciada pela Oracle e lista o valor de porta suportado para cada tipo de banco de dados. Também fornece um link no qual você pode ver as versões de banco de dados suportadas para cada tipo de banco de dados.

Observação

A Oracle usa conectores Progress DataDirect. A coluna Suporte ao Banco de Dados fornece links para o site do Progress no qual você pode encontrar as versões suportadas de cada tipo de banco de dados.
Tipo de Banco de Dados Valor db_type Porta Obrigatória Suporte ao Banco de Dados

Amazon Redshift

awsredshift

5,439

Versões suportadas do Amazon Redshift

Azure SQL

Microsoft SQL Server

Azure Synapse Analytics

azure

1,433

Versões Suportadas do Azure SQL

Versões Compatíveis do Azure Synapse Analytics

Apache Hive

hive

443

Versões Suportadas do Hive

Google Analytics

google_analytics

443

Versões suportadas do Google Analytics

Google BigQuery

google_bigquery

443

Versões suportadas do Google BigQuery

Google Drive

google_drive

443

Versões suportadas do Google Drive

Apache Hive

hive

443

Versões Suportadas do Hive

IBM Db2 11.5.6 ou superior

IBM Db2 11.5.5 ou menos

db2

25,000

50,000

Versões Suportadas pelo IBM Db2

Microsoft SharePoint

sharepoint

443

Versões suportadas do Microsoft SharePoint

MongoDB

mongodb

27,017

MongoDB Versões Suportadas

MySQL

mysql

3,306

MySQL Versões Suportadas

MySQL Community Edition

mysql_community

3,306

 

PostgreSQL

postgres

5,432

PostgreSQL Versões Suportadas

Salesforce

salesforce

19,937

Versões Suportadas do Salesforce

ServiceNow

servicenow

443

ServiceNow Versões Suportadas

Floco de neve

snowflake

443

Versões suportadas do Snowflake

Youtube

youtube

443 Versões Suportadas do Youtube

Acessar amostras e informações de conectividade heterogênea

O Oracle Autonomous Database fornece informações de conectividade heterogêneas para links de banco de dados para bancos de dados não Oracle.

A view HETEROGENEOUS_CONNECTIVITY_INFO fornece informações sobre os tipos de Conectividade Heterogênea da Oracle suportados e mostra uma amostra de código PL/SQL para cada tipo suportado.

Por exemplo:

SELECT * FROM HETEROGENEOUS_CONNECTIVITY_INFO WHERE DATABASE_TYPE = 'hive';

HETEROGENEOUS_CONNECTIVITY_INFO Exibir

A view HETEROGENEOUS_CONNECTIVITY_INFO lista informações de conectividade e exemplos para estabelecer conexão com PL/SQL usando links de banco de dados e Conectividade Heterogênea Gerenciada pela Oracle.

Coluna Tipo de dados Descrição
DATABASE_TYPE VARCHAR2(32)

Valor do tipo de banco de dados usado com o parâmetro gateway_params.

REQUIRED_PORT NUMBER

Valores de porta suportados para o tipo de banco de dados.

DESCRIPTION CLOB

Especifica uma descrição para DATABASE_TYPE.

OPTIONAL_PARAMETERS VARCHAR2(1024)

Especifica os parâmetros opcionais válidos para DATABASE_TYPE.

SAMPLE_USAGE CLOB

Mostra o uso de amostra de PL/SQL para o DATABASE_TYPE.