Creación de enlaces de base de datos a bases de datos no Oracle con conectividad heterogénea gestionada por Oracle

El soporte de Autonomous Database para la conectividad heterogénea gestionada por Oracle facilita la creación de enlaces de base de datos a bases de datos no de Oracle.

Al utilizar enlaces de base de datos con conectividad heterogénea gestionada por Oracle, Autonomous Database configura y configura la conexión a la base de datos que no es de Oracle.

Nota

Con la conectividad heterogénea gestionada por Oracle, el soporte es para conexiones de solo consulta en la base de datos remota. Es decir, las actualizaciones no están soportadas cuando se utiliza conectividad heterogénea gestionada por Oracle.

A continuación se muestra un requisito para utilizar la conectividad heterogénea gestionada por Oracle con Autonomous Database:

  • Cuando la base de datos de destino está en un punto final público, la base de datos se debe configurar para permitir conexiones SSL/TLS entrantes con certificados firmados por CA.

    La conectividad heterogénea gestionada por Oracle soporta conexiones a servicios de base de datos de destino en puntos finales privados (por ejemplo, puede conectarse a Oracle MySQL Database Service cuando el servicio está en un punto final privado). Cuando se conecta a una base de datos no oracle con conectividad heterogénea gestionada por Oracle en un punto final privado, la conexión utiliza el protocolo TCP y no necesita que SSL/TLS se configure en la base de datos de destino.

    Consulte Creación de enlaces de base de datos a Oracle MySQL en un punto final privado con conectividad heterogénea gestionada por Oracle para obtener más información.

Para crear enlaces de base de datos a una base de datos que no sea de Oracle mediante conectividad heterogénea gestionada por Oracle, realice lo siguiente:

  1. En Autonomous Database, cree credenciales para acceder a la base de datos destino. username y password que especifique con DBMS_CLOUD.CREATE_CREDENTIAL son las credenciales de la base de datos destino utilizada en el enlace de base de datos.

    Por ejemplo:

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

    Esta operación almacena las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial. Se necesita proporcionar el parámetro credential_name.

    Para acceder a Google Analytics, Google BigQuery, Google Drive, Youtube, ServiceNow o Microsoft SharePoint con OAuth2, la credencial debe incluir el parámetro params con el valor gcp_oauth2.

    Por ejemplo:

    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 Procedure para obtener más información.

  2. Cree el enlace de base de datos a la base de datos destino mediante DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por ejemplo, para crear un enlace de base de datos a 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;
    /

    service_name es el nombre de la base de datos que no es de Oracle.

    El valor gateway_params db_type que proporcione debe ser uno de los valores soportados:

    Valor de db_type Tipo de base de datos

    awsredshift

    Amazon Redshift

    azure

    Microsoft SQL Server

    SQL de Azure

    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

    Copo de nieve

    youtube

    YouTube

    Autonomous Database configura y gestiona automáticamente la conexión segura a una base de datos de destino, y las conexiones están cifradas de extremo a extremo. La conectividad heterogénea gestionada por Oracle está preconfigurada con una cartera que contiene la mayoría de los certificados SSL intermedios y raíz de confianza comunes. Por lo tanto, NULL se debe proporcionar como valor para el parámetro ssl_server_cert_dn.

    Para garantizar la seguridad al utilizar enlaces de base de datos con conectividad heterogénea gestionada por Oracle, el puerto de conexión está restringido y debe tener SSL/TLS activado. Especifique el puerto de la base de datos destino con el parámetro port.

    Consulte Puertos y tipos de base de datos de conectividad heterogénea gestionados por Oracle para obtener la lista de tipos de base de datos no soportados de Oracle.

    La vista HETEROGENEOUS_CONNECTIVITY_INFO proporciona información sobre los tipos de conectividad heterogénea de Oracle soportados y muestra un ejemplo de código PL/SQL para cada tipo soportado. Consulte Acceso a ejemplos e información de conectividad heterogénea para obtener más información.

    Al especificar el parámetro gateway_params, para algunos valores db_type, se soportan parámetros gateway_params adicionales:

    Valor de db_type Parámetros de gateway soportados con db_type especificado
    azure

    Cuando el valor db_type es azure, hay dos parámetros opcionales, auth_method y domain para admitir la autenticación NTLM/AD.

    Cuando se configura NTLMv2, defina auth_method=10 y domain en el valor de dominio de Windows.

    Para utilizar una contraseña de Azure Active Directory, defina auth_method=13. No utilice auth_method=13 para acceder a una base de datos local de Oracle.

    Consulte Método de autenticación de Microsoft SQL Server para obtener más información.

    google_analytics

    Cuando el valor db_type es google_analytics, no se utiliza hostname y puede proporcionar un valor como example.com.

    Para db_type google_analytics, la credencial debe ser una credencial de tipo OAuth con el parámetro params con los valores gcp_oauth2 especificados (client_id, client_secret y refresh_token). Consulte CREATE_CREDENTIAL Procedure para obtener más información.

    google_bigquery

    Cuando db_type es google_bigquery, el parámetro project es válido. Este parámetro especifica el nombre del proyecto en google_bigquery y es necesario.

    Cuando el valor db_type es google_bigquery, no se utiliza hostname y puede proporcionar un valor como example.com.

    Para db_type google_bigquery, la credencial debe ser una credencial de tipo OAuth con el parámetro params con los valores gcp_oauth2 especificados (client_id, client_secret y refresh_token). Consulte CREATE_CREDENTIAL Procedure para obtener más información.

    google_drive

    Para db_type google_drive, la credencial que proporcione con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK debe ser una credencial de tipo OAuth con el parámetro params con los valores gcp_oauth2 especificados (client_id, client_secret y refresh_token).

    Para conectarse a Google Drive y obtener datos, debe proporcionar los parámetros de gateway directory_name y file_name. Estos parámetros especifican un archivo de modelo (archivo REST automático) que asigna la respuesta JSON al modelo relacional. El archivo de modelo especifica los puntos finales, la asignación de tablas y el código de respuesta HTTP para procesar la respuesta JSON. Consulte Sintaxis de archivo de modelo y Archivo de modelo de ejemplo para obtener más información.

    Al utilizar el parámetro gateway_params con db_type google_drive, debe proporcionar el parámetro gateway_params db_type con el valor 'google_drive' y los parámetros directory_name y file_name, junto con las credenciales de tipo OAuth:

    El parámetro directory_name especifica el directorio con el archivo de configuración REST. Puede crear este directorio de la siguiente manera:

    create or replace directory google_drive_dir as 'GOOGLE_DRIVE_DIR';

    Obtenga y descargue el archivo REST automático en el directorio especificado. Por ejemplo:

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

    Defina el valor file_name en el nombre del archivo REST automático que descargó, "google_drive.rest". A continuación, puede utilizar el archivo de configuración de REST con OAuth 2.0.

    hive

    Cuando db_type es hive, el parámetro http_path es válido. Este parámetro especifica el valor HttpPath, si es necesario, para conectarse a la instancia de Hive.

    salesforce

    Al utilizar el parámetro gateway_params con db_type salesforce, debe proporcionar la opción security_token. El token de seguridad es un código alfanumérico sensible a mayúsculas/minúsculas.

    Consulte Restablecer el token de seguridad para obtener más información.

    Al utilizar el parámetro gateway_params con db_type salesforce, debe proporcionar el parámetro hostname correcto.

    Salesforce proporciona dos formas de URL para la cuenta de servicio de Salesforce:

    • xxxx.develop.lightning.force.com forma de URL
    • Forma xxxxmy.salesforce.com de URL como se muestra en el separador Ver perfil.

    La conectividad heterogénea gestionada por Oracle solo soporta la forma xxxxmy.salesforce.com de URL para el valor del parámetro hostname.

    servicenow

    Para conectarse a ServiceNow y obtener datos, debe proporcionar los parámetros de gateway directory_name y file_name. Estos parámetros especifican un archivo de modelo (archivo de configuración de REST) que asigna la respuesta de JSON al modelo relacional. El archivo de modelo especifica los puntos finales, la asignación de tablas y el código de respuesta HTTP para procesar la respuesta JSON. Consulte Sintaxis de archivo de modelo y Archivo de modelo de ejemplo para obtener más información.

    Al utilizar el parámetro gateway_params con db_type servicenow, hay dos opciones soportadas:

    • Autenticación básica: debe proporcionar el parámetro gateway_params db_type con el valor 'servicenow' y proporcionar los parámetros directory_name y file_name junto con las credenciales de tipo de nombre de usuario/contraseña.

    • Autenticación OAuth 2.0: debe proporcionar el parámetro gateway_params db_type con el valor 'servicenow' y los parámetros directory_name, file_name y token_uri, junto con las credenciales de tipo OAuth.

      Para la autenticación OAuth 2.0 con db_type servicenow, la credencial debe ser una credencial de tipo OAuth mediante el parámetro params con los valores gcp_oauth2 especificados (client_id, client_secret y refresh_token). Consulte CREATE_CREDENTIAL Procedure para obtener más información.

    El parámetro directory_name especifica el directorio con el archivo de configuración REST ServiceNow. Puede crear este directorio de la siguiente manera:

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Obtenga y descargue el archivo de configuración de REST ServiceNow en el directorio especificado. Por ejemplo:

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

    Defina el valor file_name en el nombre del archivo de configuración de REST que ha descargado, "servicenow.rest".

    A continuación, puede utilizar el archivo de configuración de REST ServiceNow con autenticación básica o OAuth2.0. Consulte HETEROGENEOUS_CONNECTIVITY_INFO View para obtener ejemplos.

    sharepoint

    Al utilizar el parámetro gateway_params con db_type sharepoint, especifique también valores para auth_uri, scope, service_url y token_uri.

    Para db_type sharepoint, la credencial que proporcione con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK debe ser una credencial de tipo OAuth con el parámetro params con los valores gcp_oauth2 especificados (client_id, client_secret y refresh_token). Consulte CREATE_CREDENTIAL Procedure para obtener más información. Genere el valor refresh_token para tenant_id.sharepoint.com/.default offline_access. Consulte lo siguiente para obtener más información: Determine the scope y OAuth 2.0 authentication.

    Defina valores para gateway_params para db_type sharepoint:

    snowflake

    Cuando utilice el parámetro gateway_params con db_type snowflake, utilice el identificador de cuenta de Snowflake como parámetro hostname. En este caso, el controlador agrega snowflakecomupting.com, de modo que no transfiera esta parte del nombre de host explícitamente. Para buscar el identificador de cuenta de Snowflake, consulte Formatos de identificador de cuenta por plataforma y región en la nube.

    Por ejemplo: para la cuenta Snowflake:

    https://example-marketing_test_account.snowflakecomputing.com

    Defina el valor hostname en "example-marketing_test_account".

    Cuando db_type es SNOWFLAKE, los parámetros opcionales: role, schema y warehouse son válidos. Estos valores especifican un esquema, rol o valor de almacén distinto del valor por defecto. Por ejemplo:

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

    Para conectarse a YouTube y obtener datos, debe proporcionar los parámetros directory_name y file_name. Estos parámetros especifican un archivo de modelo (archivo de configuración de REST) que asigna la respuesta de JSON al modelo relacional. El archivo de modelo especifica los puntos finales, la asignación de tablas y el código de respuesta HTTP para procesar la respuesta JSON. Consulte Sintaxis de archivo de modelo y Archivo de modelo de ejemplo para obtener más información.

    Para db_type youtube, la credencial debe ser una credencial de tipo OAuth con el parámetro params con los valores gcp_oauth2 especificados (client_id, client_secret y refresh_token). Consulte CREATE_CREDENTIAL Procedure para obtener más información.

    El parámetro directory_name especifica el directorio con el archivo de configuración REST de youtube.

    Por ejemplo, para crear este directorio y agregar el contenido necesario:

    1. Cree un directorio en la instancia de Autonomous Database:

      create or replace directory youtube_dir as 'YOUTUBE_DIR';
    2. Obtenga y descargue el archivo de configuración de REST de descanso automático en el directorio especificado. Por ejemplo:

      exec DBMS_CLOUD.get_object('youtube_dir_cred',
           'https://objectstorage.<...>/youtube.rest','YOUTUBE_DIR');
    3. Defina el valor file_name en el nombre del archivo de configuración REST que ha descargado, 'youtube.rest'.

    A continuación, puede usar el archivo de configuración de REST con OAuth2.0. Consulte HETEROGENEOUS_CONNECTIVITY_INFO View para obtener ejemplos.

    Consulte CREATE_DATABASE_LINK Procedure para obtener más información.

  3. Utilice el enlace de base de datos para acceder a los datos de la base de datos destino.

    Por ejemplo:

    SELECT count(*) FROM sales@AWSREDSHIFT_LINK

    El nombre de tabla que especifique al utilizar SELECT con Google BigQuery debe estar entre comillas. Por ejemplo:

    SELECT count(*) FROM "sales"@GOOGLE_BIGQUERY_LINK
Nota

Para las credenciales que cree en el paso 1, las credenciales de la base de datos de destino, si cambia la contraseña del usuario de destino, puede actualizar la credencial que contiene las credenciales del usuario de destino de la siguiente manera:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'AWS_REDSHIFT_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

Donde password es la nueva contraseña.

Después de esta operación, los enlaces de base de datos existentes que utilizan esta credencial siguen funcionando sin tener que borrar y volver a crear los enlaces de base de datos.

Para obtener información adicional, consulte:

Creación de enlaces de base de datos a Oracle MySQL en un punto final privado con conectividad heterogénea gestionada por Oracle

El soporte de Autonomous Database para la conectividad heterogénea gestionada por Oracle facilita la creación de enlaces de base de datos a Oracle MySQL Database Service en un punto final privado. Al utilizar enlaces de base de datos con conectividad heterogénea gestionada por Oracle, Autonomous Database configura y configura la conexión a Oracle MySQL Database Service.

A continuación se muestran los requisitos para utilizar la conectividad heterogénea gestionada por Oracle con Oracle MySQL Database Service en un punto final privado:

  • Cree un nombre DNS mediante una zona de DNS privada que apunte a la IP privada de Oracle MySQL Database Service en su VCN. Consulte DNS privado.
  • Cree una instancia de Autonomous Database con un punto final privado en la misma subred.
  • Configure la VCN para Oracle MySQL Database Service para permitir las conexiones entrantes en el puerto 3306.

Para crear enlaces de base de datos a Oracle MySQL Database Service en un punto final privado mediante conectividad heterogénea gestionada por Oracle, realice lo siguiente:

  1. En Autonomous Database, cree credenciales para acceder a Oracle MySQL Database Service. username y password que especifique con DBMS_CLOUD.CREATE_CREDENTIAL son las credenciales de Oracle MySQL Database Service que se utilizan en el enlace de base de datos.
    Nota

    Se necesita proporcionar el parámetro credential_name.

    Por ejemplo:

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

    Esta operación almacena las credenciales en la base de datos en un formato cifrado. Puede utilizar cualquier nombre para el nombre de credencial.

  2. Cree el enlace de base de datos a Oracle MySQL Database Service mediante DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

    Por ejemplo, para crear un enlace a la base de datos:

    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. Utilice el enlace de base de datos para acceder a los datos de la base de datos destino.

    Por ejemplo:

    SELECT count(*) FROM sales@MYSQL_LINK
Nota

Para las credenciales que cree en el paso 1, las credenciales de la base de datos de destino, si cambia la contraseña del usuario de destino, puede actualizar la credencial que contiene las credenciales del usuario de destino de la siguiente manera:

BEGIN
    DBMS_CLOUD.UPDATE_CREDENTIAL (
       credential_name => 'MYSQL_LINK_CRED',
       attribute => 'PASSWORD',
       value => 'password');
END;
/

Donde password es la nueva contraseña.

Después de esta operación, los enlaces de base de datos existentes que utilizan esta credencial siguen funcionando sin tener que borrar y volver a crear los enlaces de base de datos.

Para obtener información adicional, consulte:

Puertos y tipos de bases de datos de conectividad heterogénea gestionados por Oracle

Muestra las bases de datos que no son de Oracle a las que puede conectarse desde Autonomous Database con conectividad heterogénea gestionada por Oracle y muestra el valor de puerto soportado para cada tipo de base de datos. También proporciona un enlace donde puede ver las versiones de base de datos soportadas para cada tipo de base de datos.

Nota

Oracle utiliza conectores Progress DataDirect. La columna Database Support proporciona enlaces al sitio web Progress, donde puede encontrar las versiones de base de datos soportadas para cada tipo de base de datos.
Tipo de base de datos Valor de db_type Puerto necesario Soporte de base de datos

Amazon Redshift

awsredshift

5.439

Versiones compatibles con Amazon Redshift

SQL de Azure

Microsoft SQL Server

Azure Synapse Analytics

azure

1.433

Versiones admitidas de Azure SQL

Versiones admitidas de Azure Synapse Analytics

Apache Hive

hive

443

Versiones admitidas por Hive

Google Analytics

google_analytics

443

Versiones compatibles con Google Analytics

Google BigQuery

google_bigquery

443

Versiones admitidas por Google BigQuery

Google Drive

google_drive

443

Versiones compatibles con Google Drive

Apache Hive

hive

443

Versiones admitidas por Hive

IBM Db2 11.5.6 o posterior

IBM Db2 11.5.5 o inferior

db2

25.000

50.000

Versiones admitidas por IBM Db2

Microsoft SharePoint

sharepoint

443

Versiones admitidas por Microsoft SharePoint

MongoDB

mongodb

27.017

MongoDB Versiones admitidas

MySQL

mysql

3.306

MySQL Versiones admitidas

MySQL Community Edition

mysql_community

3.306

 

PostgreSQL

postgres

5.432

PostgreSQL Versiones admitidas

Salesforce

salesforce

19.937

Versiones admitidas por Salesforce

ServiceNow

servicenow

443

ServiceNow Versiones admitidas

Copo de nieve

snowflake

443

Versiones compatibles con Snowflake

Youtube

youtube

443 Versiones compatibles con Youtube

Acceso a ejemplos e información de conectividad heterogénea

Oracle Autonomous Database proporciona información de conectividad heterogénea para enlaces de base de datos a bases de datos que no son de Oracle.

La vista HETEROGENEOUS_CONNECTIVITY_INFO proporciona información sobre los tipos de conectividad heterogénea de Oracle soportados y muestra un ejemplo de código PL/SQL para cada tipo soportado.

Por ejemplo:

SELECT * FROM HETEROGENEOUS_CONNECTIVITY_INFO WHERE DATABASE_TYPE = 'hive';

HETEROGENEOUS_CONNECTIVITY_INFO Vista

La vista HETEROGENEOUS_CONNECTIVITY_INFO muestra información y ejemplos de conectividad para conectarse con PL/SQL mediante enlaces de base de datos y conectividad heterogénea gestionada por Oracle.

Columna Tipo de dato Descripción
DATABASE_TYPE VARCHAR2(32)

Valor de tipo de base de datos utilizado con el parámetro gateway_params.

REQUIRED_PORT NUMBER

Valores de puerto soportados para el tipo de base de datos.

DESCRIPTION CLOB

Especifica una descripción para DATABASE_TYPE.

OPTIONAL_PARAMETERS VARCHAR2(1024)

Especifica los parámetros opcionales válidos para DATABASE_TYPE.

SAMPLE_USAGE CLOB

Muestra el uso de PL/SQL de ejemplo para DATABASE_TYPE.