Paquete DBMS_CLOUD_ADMIN

En esta sección se tratan los subprogramas DBMS_CLOUD_ADMIN que proporciona Autonomous Database.

Subprograma Descripción

Procedimiento ATTACH_FILE_SYSTEM

Este procedimiento adjunta un sistema de archivos en un directorio de la base de datos.

Procedimiento CREATE_DATABASE_LINK

Con este procedimiento se crea un enlace de base de datos a una base de datos de destino. Hay opciones para crear un enlace de base de datos a otra instancia de Autonomous Database, a una instancia de Oracle Database que no sea una instancia de Autonomous Database o a una instancia que no sea de Oracle Database mediante la conectividad heterogénea gestionada por Oracle.

Procedimiento DETACH_FILE_SYSTEM

Este procedimiento desasocia un sistema de archivos de un directorio de la base de datos.

Procedimiento DISABLE_EXTERNAL_AUTHENTICATION

Con este procedimiento se desactiva la autenticación externa para la instancia de Autonomous Database.

Procedimiento DROP_DATABASE_LINK

Con este procedimiento se borra un enlace de base de datos.

Procedimiento ENABLE_EXTERNAL_AUTHENTICATION

Este procedimiento permite a un usuario conectarse a Autonomous Database mediante el esquema de autenticación externo especificado.

Procedimiento ATTACH_FILE_SYSTEM

Este procedimiento adjunta un sistema de archivos en la base de datos.

El procedimiento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM adjunta un sistema de archivos en la base de datos y almacena información sobre el sistema de archivos en la vista DBA_CLOUD_FILE_SYSTEMS.

Sintaxis

DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name         IN VARCHAR2,
    file_system_location     IN VARCHAR2,
    directory_name           IN VARCHAR2,
    description              IN VARCHAR2 DEFAULT NULL,
    params                   IN CLOB DEFAULT NULL
);

Parámetros

parámetro Descripción

file_system_name

Especifica el nombre del sistema de archivos.

Este parámetro es obligatorio.

file_system_location

Especifica la ubicación del sistema de archivos.

El valor que proporciona con file_system_location consta de un nombre de dominio completo (FQDN) y una ruta de archivo con el formato: FQDN:file_path.

Por ejemplo:

  • NMF: myhost.sub000445.myvcn.oraclevcn.com

    Para Oracle Cloud Infrastructure File Storage, defina el FQDN en Mostrar opciones avanzadas al crear un sistema de archivos. Consulte Creación de sistemas de archivos para obtener más información.

  • Ruta del archivo: /results

Este parámetro es obligatorio.

directory_name

Especifica el nombre del directorio para el sistema de archivos adjunto. El directorio debe existir.

Este parámetro es obligatorio.

description

(Opcional) Proporciona una descripción de la tarea.

params

Cadena JSON que proporciona un parámetro adicional para el sistema de archivos.

  • nfs_version: especifica la versión de NFS que se utilizará cuando se conecte NFS (NFSv3 o NFSv4). Valores válidos: 3, 4.

    Valor por defecto: 3

Ejemplos:

Adjunte a un sistema de archivos NFSv3:

BEGIN
   DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name      => 'FSS',
    file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
    directory_name        => 'FSS_DIR',
    description           => 'Source NFS for sales data'
  );
END;
/     

Adjunte a un sistema de archivos NFSv4:

BEGIN
   DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (
    file_system_name      => 'FSS',
    file_system_location  => 'myhost.sub000445.myvcn.oraclevcn.com:/results',
    directory_name        => 'FSS_DIR',  
    description           => 'Source NFS for sales data',
    params                => JSON_OBJECT('nfs_version' value 4)
);                                                      
END;                                                        
/

Notas de uso

  • Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.

  • Debe tener el privilegio WRITE en el objeto de directorio de la base de datos para adjuntar un sistema de archivos mediante DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM.

  • El procedimiento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM solo puede asociar un servicio de almacenamiento de archivos privado en bases de datos con puntos finales privados activados.

    Consulte Servicio de almacenamiento de archivos de OCI y Configuración de un sistema de desarrollo para acceder a la base de datos para obtener más información.

  • El procedimiento DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM busca el nombre de host del sistema de archivos de red en la red virtual en la nube (VCN) del cliente. Se devuelve el error "ORA-20000: Mounting NFS fails" si no se puede localizar el nombre de host especificado en la ubicación.

  • Oracle Cloud Infrastructure File Storage utiliza NFSv3 para compartir

  • Si se asocia a sistemas que no sean de Oracle Cloud Infrastructure File Storage, el procedimiento soporta NFSv3 y NFSv4

  • Si tiene un servidor NFS conectado que utiliza NFSv3 y la versión de NFS se actualiza a NFSv4 en el servidor NFS, debe ejecutar DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM y, a continuación, DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (mediante el parámetro params con nfs_version establecido en 4). Con ello se asocia NFS con el protocolo coincidente para que Autonomous Database pueda acceder al servidor NFSv4. Sin desconectar y volver a conectar, no se podrá acceder al servidor NFS y puede que aparezca un error como: "Protocol not supported".

Procedimiento CREATE_DATABASE_LINK

Con este procedimiento se crea un enlace de base de datos a una base de datos de destino en el esquema que llama a la API.

Los formularios sobrecargados admiten lo siguiente:

  • Al utilizar el parámetro gateway_params, esto permite crear un enlace de base de datos con conectividad heterogénea gestionada por Oracle donde el enlace está a una base de datos no Oracle soportada.

  • Al utilizar el parámetro rac_hostnames, esto permite crear un enlace de base de datos desde una Autonomous Database en un punto final privado a una base de datos Oracle RAC de destino. En este caso, utilice el parámetro rac_hostnames para especificar los nombres de host de uno o más nodos individuales de la base de datos Oracle RAC de destino.

Sintaxis

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
       db_link_name         IN VARCHAR2,
       hostname             IN VARCHAR2,
       port                 IN NUMBER,
       service_name         IN VARCHAR2,
       ssl_server_cert_dn   IN VARCHAR2 DEFAULT,
       credential_name      IN VARCHAR2 DEFAULT,
       directory_name       IN VARCHAR2 DEFAULT,
       gateway_link         IN BOOLEAN DEFAULT,
       public_link          IN BOOLEAN DEFAULT,
       private_target       IN BOOLEAN DEFAULT
       gateway_params       IN CLOB DEFAULT);
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
       db_link_name         IN VARCHAR2,
       rac_hostnames        IN CLOB,
       port                 IN NUMBER,
       service_name         IN VARCHAR2,
       ssl_server_cert_dn   IN VARCHAR2 DEFAULT,
       credential_name      IN VARCHAR2 DEFAULT,
       directory_name       IN VARCHAR2 DEFAULT,
       gateway_link         IN BOOLEAN DEFAULT,
       public_link          IN BOOLEAN DEFAULT,
       private_target       IN BOOLEAN DEFAULT);

Parámetros

parámetro Descripción

db_link_name

Nombre del enlace de base de datos que se va a crear.

hostname

Nombre de host de la base de datos de destino.

No se permite especificar localhost para hostname.

Al especificar una conexión con conectividad heterogénea gestionada por Oracle proporcionando el parámetro gateway_params, tenga en cuenta lo siguiente:

Utilice este parámetro o rac_hostnames, no utilice ambos.

La entrada DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK debe mencionar el nombre de exploración de la instancia de Autonomous Database dedicada de destino como parámetro 'hostname'.

rac_hostnames

Especifica los nombres de host de la base de datos Oracle RAC de destino. El valor es una matriz de JSON que especifica uno o más nombres de host individuales para los nodos de la base de datos Oracle RAC de destino. Se pueden transferir varios nombres de host en JSON, separados por un ",". Por ejemplo:

'["sales1-svr1.domain", "sales1-svr2.domain",
      "sales1-svr3.domain"]'

Cuando el destino es una base de datos Oracle RAC, utilice el parámetro rac_hostnames para especificar uno o más nombres de host con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Esto le permite aprovechar las capacidades de alta disponibilidad de Oracle RAC. No está soportado el uso de una dirección IP, una IP de SCAN o un nombre de host de SCAN en el valor rac_hostnames.

Al especificar una lista de nombres de host en el parámetro rac_hostnames, CREATE_DATABASE_LINK utiliza todos los nombres de host especificados como direcciones en la cadena de conexión. Si uno de los hosts especificados no está disponible en la base de datos Oracle RAC de destino, Autonomous Database intenta conectarse automáticamente mediante otro nombre de host de la lista.

Utilice este parámetro o hostname, no utilice ambos.

No se permite especificar localhost para un valor rac_hostname.

port

Especifica el puerto para las conexiones a la base de datos de destino.

Al especificar una conexión con conectividad heterogénea gestionada por Oracle mediante el parámetro gateway_params, defina el puerto según el valor db_type:

  • awsredshift: utilice el puerto 5439
  • azure: utilice el puerto 1433
  • db2: utilice el puerto 2500 para las versiones de Db2 >= 11.5.6
  • db2: utilice el puerto 5000 para las versiones de Db2 <= 11.5.5
  • google_analytics: utilice el puerto 443
  • google_bigquery: utilice el puerto 443
  • hive: utilice el puerto 433
  • mongodb: utilice el puerto 27017
  • mysql: utilice el puerto 3306
  • mysql_community: utilice el puerto 3306
  • postgres: utilice el puerto 5432
  • salesforce: utilice el puerto 19937
  • servicenow: utilice el puerto 443
  • snowflake: utilice el puerto 443

service_name

Valor service_name del enlace de base de datos al que enlazar. Para una instancia de Autonomous Database de destino, busque el nombre del servicio mediante uno de los siguientes métodos:

  • Busque en el archivo tnsnames.ora de wallet.zip que descargue de una instancia de Autonomous Database para su conexión.

  • Haga clic en Conexión de base de datos en la consola de Oracle Cloud Infrastructure. Cada cadena de conexión que se muestra en la columna Cadena de conexión incluye una entrada service_name con la cadena de conexión para el servicio correspondiente. Consulte Visualización de cadenas de conexión para una instancia de Autonomous Database para obtener más información.

  • Consulte la vista V$SERVICES. Por ejemplo:

    SELECT name FROM V$SERVICES;

Al especificar una conexión con conectividad heterogénea gestionada por Oracle mediante el parámetro gateway_params, service_name es el nombre de la base de datos no Oracle.

ssl_server_cert_dn

Valor de DN encontrado en el certificado del servidor.

La conectividad heterogénea gestionada por Oracle viene preconfigurada con una cartera que contiene la mayoría de los certificados SSL intermedios y de raíz de confianza comunes. ssl_server_cert_dn debe ser NULL cuando proporcione el parámetro gateway_params o no incluya el parámetro ssl_server_cert_dn (el valor por defecto es NULL).

Enlace de punto final público a un destino de Autonomous Database sin una cartera:

Para conectarse a un destino de Autonomous Database en un punto final público sin una cartera (TLS):

  • El parámetro directory_name debe ser NULL.
  • El parámetro ssl_server_cert_dn debe ser NULL o no incluir este parámetro (el valor por defecto es NULL).

Enlace de punto final privado sin cartera:

Para conectarse a una instancia de Oracle Database en un punto final privado sin una cartera:

  • La base de datos de destino debe estar en un punto final privado.
  • El parámetro directory_name debe ser NULL.
  • El parámetro ssl_server_cert_dn debe ser NULL o no incluir este parámetro (el valor por defecto es NULL).
  • El parámetro private_target debe ser TRUE.
credential_name

Nombre de una credencial almacenada creada con DBMS_CLOUD.CREATE_CREDENTIAL. Se trata de las credenciales para acceder a la base de datos de destino.

directory_name

Directorio para el archivo cwallet.sso. El valor por defecto de este parámetro es 'data_pump_dir'.

La conectividad heterogénea gestionada por Oracle viene preconfigurada con una cartera que contiene la mayoría de los certificados SSL intermedios y de raíz de confianza comunes. El parámetro directory_name no es necesario cuando proporciona el parámetro gateway_params.

Enlace de punto final público a un destino de Autonomous Database sin una cartera:

Para conectarse a una instancia de Autonomous Database en un punto final público sin una cartera (TLS):

  • El parámetro directory_name debe ser NULL.
  • El parámetro ssl_server_cert_dn debe ser NULL o no incluir este parámetro (el valor por defecto es NULL).

Además, para conectarse a una instancia de Autonomous Database con TCP, el parámetro ssl_server_cert_dn debe ser NULL o no incluir este parámetro (el valor por defecto es NULL).

Enlace de punto final privado sin cartera:

Para conectarse a una instancia de Oracle Database de destino en un punto final privado sin una cartera:

  • La base de datos de destino debe estar en un punto final privado.
  • El parámetro directory_name debe ser NULL.
  • El parámetro ssl_server_cert_dn debe ser NULL o no incluir este parámetro (el valor por defecto es NULL).
  • El parámetro private_target debe ser TRUE.
gateway_link

Indica si el enlace de base de datos se crea en otra instancia de Oracle Database o en una instancia de Oracle Database Gateway.

Si gateway_link está definido en FALSE, especifica un enlace de base de datos a otra instancia de Autonomous Database o a otra instancia de Oracle Database.

Si gateway_link se define en TRUE, especifica un enlace de base de datos a un sistema no Oracle. De esta forma se crea un descriptor de conexión en la definición de enlace de base de datos que especifica (HS=OK).

Cuando gateway_link se define en TRUE y gateway_params es NULL, especifica un enlace de base de datos a un gateway de Oracle gestionado por el cliente.

El valor por defecto de este parámetro es FALSE.

public_link

Indica si el enlace de base de datos se ha creado como un enlace de base de datos pública.

Para ejecutar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK con este parámetro definido en TRUE, el usuario que llama al procedimiento debe tener el privilegio EXECUTE en la credencial asociada al enlace de base de datos pública y debe tener el privilegio del sistema CREATE PUBLIC DATABASE LINK. El privilegio EXECUTE de la credencial lo puede otorgar el usuario ADMIN o el propietario de la credencial.

El valor por defecto de este parámetro es FALSE.

private_target

Cuando un enlace de base de datos accede a un nombre de host que se debe resolver en un servidor DNS de VCN, especifique el parámetro private_target con el valor TRUE.

Cuando private_target es TRUE, el parámetro hostname debe ser un único nombre de host (en un punto final privado, no está soportado el uso de una dirección IP, una IP de SCAN o un nombre de host de SCAN).

El valor por defecto de este parámetro es FALSE.

gateway_params

db_type Este parámetro especifica el tipo de base de datos de destino para la conectividad heterogénea gestionada por Oracle para conectarse a bases de datos que no sean de Oracle. El valor db_type es uno de:

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Consulte las notas de uso para obtener información adicional sobre gateway_params cuando db_type es google_bigquery.

  • hive

    * Consulte las notas de uso para obtener información adicional sobre gateway_params cuando db_type es hive.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Consulte las notas de uso para obtener información adicional sobre gateway_params cuando db_type es salesforce.

  • servicenow

    * Consulte las notas de uso para obtener información adicional sobre gateway_params cuando db_type es servicenow.

  • snowflake

    * Consulte las notas de uso para obtener información adicional sobre gateway_params cuando db_type es snowflake.

  • NULL

    Cuando gateway_params es NULL y gateway_link está definido en TRUE, especifica un enlace de base de datos a un gateway de Oracle gestionado por el cliente.

Especifique el parámetro con el formulario json_object.

Por ejemplo:

gateway_params => json_object('db_type' value 'awsredshift')

Cuando gateway_params es NULL y private_target es TRUE, si directory_name es NULL, se crea un enlace de base de datos basado en TCP.

Cuando gateway_params es NULL y private_target es TRUE, si directory_name es NULL, se crea un enlace de base de datos basado en TCPS.

Notas de uso

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

    db_type Valores gateway_params Adicionales
    google_analytics

    Cuando db_type es google_analytics, la credencial que especifique debe ser una credencial OAuth de Google (gcp_oauth2) Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

    google_bigquery

    Cuando db_type es google_bigquery, la credencial que especifique debe ser una credencial OAuth de Google (gcp_oauth2) Consulte Procedimiento CREATE_CREDENTIAL para obtener más información.

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

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

    SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
    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

    Cuando db_type es salesforce, el parámetro: security_token es válido. Un token de seguridad es un código alfanumérico sensible a mayúsculas/minúsculas. Se necesita proporcionar un valor security_token para acceder a Salesforce. Por ejemplo:

    gateway_params => JSON_OBJECT(
         'db_type' value 'salesforce',
         'security_token' value 'security_token_value' )

    Consulte Restablecimiento del token de seguridad para obtener más información.

    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 REST) 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 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.

    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 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 REST ServiceNow con autenticación básica u OAuth2.0.

    snowflake

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

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
  • Al utilizar el parámetro private_target, tenga en cuenta que los enlaces de base de datos de una instancia de Autonomous Database a un servicio de base de datos que esté en un punto final privado solo están soportados en regiones comerciales y regiones del Gobierno de Estados Unidos.

    Esta función está activada por defecto en todas las regiones comerciales.

    Esta función está activada por defecto en las regiones del Gobierno de EE. UU. para bases de datos aprovisionadas recientemente.

    Para bases de datos del Gobierno de EE. UU. existentes en un punto final privado, si desea crear enlaces de base de datos desde una instancia de Autonomous Database a un destino en una región del Gobierno de EE. UU., registre una solicitud de servicio en Soporte de Oracle Cloud y solicite activar la función de enlace de base de datos del punto final privado en regiones del Gobierno.

    Las regiones del Gobierno de EE. UU. incluyen lo siguiente:

  • Al conectarse a una base de datos no Oracle, el enlace de base de datos solo está soportado si se puede acceder a la base de datos de destino a través de una IP pública o un nombre de host público.
  • Para ejecutar DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK con un usuario que no sea ADMIN, debe otorgar privilegios EXECUTE y CREATE DATABASE LINK a ese usuario.Por ejemplo, ejecute el siguiente comando como ADMIN para otorgar privilegios a atpc_user:

    GRANT EXECUTE ON DBMS_CLOUD_ADMIN TO atpc_user;
    GRANT CREATE DATABASE LINK TO atpc_user;

    Además, al crear un enlace de base de datos en un esquema que no sea el esquema ADMIN, por ejemplo, en un esquema denominado atpc_user, el esquema atpc_user debe ser propietario de la credencial que utilice con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  • Solo es válido un archivo de cartera por directorio especificado con el parámetro directory_name. Solo puede cargar un cwallet.sso a la vez en el directorio que seleccione para los archivos de cartera. Esto significa que con cwallet.sso en un directorio, solo puede crear enlaces de base de datos a las bases de datos para las que la cartera de ese directorio sea válida. Para utilizar varios archivos cwallet.sso con enlaces de base de datos, debe crear directorios adicionales y colocar cada archivo cwallet.sso en un directorio diferente.

    Consulte Creación de directorios en Autonomous Database para obtener información sobre la creación de directorios.

  • Para crear un enlace de base de datos a una instancia de Autonomous Database, defina GLOBAL_NAMES en FALSE en la base de datos de origen (no Autonomous Database).

    SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
     
    System altered.
    
    SQL> SHOW PARAMETER GLOBAL_NAMES
    NAME                     TYPE        VALUE
    ----------------------   ----------- -----------
    global_names             boolean     FALSE
    
  • Cuando el parámetro private_target es TRUE, el parámetro hostname especifica un host privado dentro de la VCN.

Ejemplos

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
     credential_name => 'DB_LINK_CRED',
     username => 'adb_user',
     password => 'password');
  DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
     db_link_name => 'SALESLINK', 
     hostname => 'adb.eu-frankfurt-1.oraclecloud.com', 
     port => '1522',
     service_name => 'example_medium.atpc.example.oraclecloud.com',
     ssl_server_cert_dn => 'CN=atpc.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
     credential_name => 'DB_LINK_CRED');
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AWS_REDSHIFT_LINK_CRED',
    username => 'NICK',
    password => 'password'
  );
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'AWSREDSHIFT_LINK', 
          hostname => 'example.com', 
          port => '5439',
          service_name => 'example_service_name',
          ssl_server_cert_dn => NULL,
          credential_name => 'AWS_REDSHIFT_LINK_CRED',
          gateway_params => JSON_OBJECT('db_type'  value 'awsredshift'));
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'PRIVATE_ENDPOINT_CRED',
    username => 'db_user',
    password => 'password'
  );
DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'PRIVATE_ENDPOINT_DB_LINK', 
          hostname => 'exampleHostname', 
          port => '1521',
          service_name => 'exampleServiceName',
          credential_name => 'PRIVATE_ENDPOINT_CRED',
          ssl_server_cert_dn => NULL,
          directory_name => NULL,
          private_target => TRUE);
END;
/
BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'GOOGLE_BIGQUERY_CRED',
    params => JSON_OBJECT( 'gcp_oauth2' value JSON_OBJECT(
          'client_id' value 'client_id',
          'client_secret' value 'client_secret', 
          'refresh_token' value 'refresh_token' )));

DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
          db_link_name => 'GOOGLE_BIGQUERY_LINK', 
          hostname => 'example.com', 
          port => '443',
          service_name => 'example_service_name',
          credential_name => 'GOOGLE_BIGQUERY_CRED',
          gateway_params => JSON_OBJECT(
                     'db_type' value 'google_bigquery',
                     'project' value 'project_name1' ));
END;
/

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

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

Utilice el parámetro rac_hostnames con una base de datos Oracle RAC de destino en un punto final privado.

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
     credential_name => 'DB_LINK_CRED1',
     username => 'adb_user',
     password => 'password');
      DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK(
     db_link_name => 'SALESLINK', 
     rac_hostnames => '["sales1-svr1.example.adb.us-ashburn-1.oraclecloud.com",
                        "sales1-svr2.example.adb.us-ashburn-1.oraclecloud.com",
                        "sales1-svr3.example.adb.us-ashburn-1.oraclecloud.com"]',
     port => '1522',
     service_name => 'example_high.adb.oraclecloud.com',
     ssl_server_cert_dn => 'CN=adb.example.oraclecloud.com,OU=Oracle BMCS FRANKFURT,O=Oracle Corporation,L=Redwood City,ST=California,C=US',
     credential_name => 'DB_LINK_CRED1',
     directory_name => 'EXAMPLE_WALLET_DIR',
     private_target => TRUE);
END;
/

Procedimiento DETACH_FILE_SYSTEM

Este procedimiento desasocia un sistema de archivos de la base de datos.

El procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM desasocia un sistema de archivos de la base de datos. Además, el procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM también elimina la información sobre el sistema de archivos de la vista DBA_CLOUD_FILE_SYSTEMS.

Sintaxis

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

Parámetros

parámetro Descripción

file_system_name

Especifica el nombre del sistema de archivos.

Este parámetro es obligatorio.

Por ejemplo:

BEGIN
   DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM (
    file_system_name      => 'FSS'                                       
  );                                                                          
END;                                                                          
/     

Notas de uso

  • Para ejecutar este procedimiento, debe estar conectado como usuario ADMIN o tener el privilegio EXECUTE en DBMS_CLOUD_ADMIN.

  • Debe tener el privilegio WRITE en el objeto de directorio de la base de datos para desasociar un sistema de archivos de un directorio mediante el procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM.

  • El procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM solo puede desasociar un servicio de almacenamiento de archivos privado en bases de datos con puntos finales privados activados.

    Consulte Servicio de almacenamiento de archivos de OCI y Configuración de un sistema de desarrollo para acceder a la base de datos para obtener más información.

  • El procedimiento DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM busca el nombre de host del sistema de archivos de red en la red virtual en la nube (VCN) del cliente. Se devuelve el error "ORA-20000: Mounting NFS fails" si no se puede localizar el nombre de host especificado en la ubicación.

Procedimiento DISABLE_EXTERNAL_AUTHENTICATION

Desactiva la autenticación de usuario con esquemas de autenticación externos para la base de datos.

Sintaxis

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

Excepciones

Excepción Error Descripción
invalid_ext_auth ORA-20004

Consulte el mensaje adjunto para obtener una explicación detallada.

Ejemplo

BEGIN 
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

PL/SQL procedure successfully completed.

Procedimiento DROP_DATABASE_LINK

Con este procedimiento se borra un enlace de base de datos.

Sintaxis

DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name      IN VARCHAR2,
        public_link       IN BOOLEAN DEFAULT);

Parámetros

parámetro Descripción

db_link_name

Nombre del enlace de base de datos que se va a borrar.

public_link

Para ejecutar DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK con public_link definido en TRUE, debe tener el privilegio del sistema DROP PUBLIC DATABASE LINK.

El valor por defecto de este parámetro es FALSE.

Ejemplo

BEGIN
    DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK(
        db_link_name => 'SALESLINK' );
END;
/

Notas de uso

Después de utilizar un enlace de base de datos y ejecutar DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK, para garantizar la seguridad de la base de datos Oracle, elimine los archivos de cartera almacenados. Por ejemplo:

  • Elimine el archivo de cartera del almacén de objetos.

  • Utilice DBMS_CLOUD.DELETE_FILE para eliminar el archivo de cartera del directorio data_pump_dir o del directorio definido por el usuario en el que se ha cargado el archivo de cartera.

Procedimiento ENABLE_EXTERNAL_AUTHENTICATION

Permite a los usuarios conectarse a la base de datos con esquemas de autenticación externos.

Sintaxis

DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
   type         IN VARCHAR2,
   force        IN BOOLEAN DEFAULT FALSE,
   params       IN CLOB DEFAULT NULL
);

parámetro

parámetro Descripción

type

Especifica el tipo de autenticación externa. Valores válidos: o .

  • 'OCI_IAM'
  • 'AZURE_AD'
  • 'CMU'
  • 'KERBEROS'

force

(Opcional) Sustituya un esquema de autenticación externa activado actualmente. Los valores válidos son TRUE o FALSE.

El valor por defecto es FALSE.

params

Cadena JSON que proporciona parámetros adicionales para la autenticación externa.

Parámetros CMU:

  • location_uri: especifica el URI de almacenamiento en la nube para el cubo en el que se almacenan los archivos necesarios para CMU.

    Si especifica location_uri, hay un objeto de directorio de nombre fijo CMU_WALLET_DIR creado en la base de datos en la ruta 'cmu_wallet' para guardar los archivos de configuración de CMU. En este caso, no es necesario proporcionar el parámetro directory_name.

  • credential_name: especifica las credenciales que se utilizan para descargar los archivos de configuración de CMU del almacén de objetos al objeto de directorio.

    El valor por defecto es NULL, que le permite proporcionar una URL pública, autenticada previamente o firmada previamente para el cubo o la subcarpeta del almacén de objetos.

  • directory_name: especifica el nombre del directorio donde se almacenan los archivos de configuración necesarios para CMU. Si se proporciona directory_name, se espera que copie los archivos de configuración de CMU dsi.ora y cwallet.sso en este objeto de directorio.

Parámetros de KERBEROS:

  • location_uri: especifica el URI de almacenamiento en la nube para el cubo donde se almacenan los archivos necesarios para Kerberos.

    Si especifica location_uri, hay un objeto de directorio de nombre fijo KERBEROS_DIR creado en la base de datos para guardar los archivos de configuración de Kerberos. En este caso, no es necesario proporcionar el parámetro directory_name.

  • credential_name: especifica la credencial que se utiliza para descargar los archivos de configuración de Kerberos desde la ubicación del almacén de objetos al objeto de directorio.

    El valor por defecto es NULL, que le permite proporcionar una URL pública, autenticada previamente o firmada previamente para el cubo o la subcarpeta del almacén de objetos.

  • directory_name: especifica el nombre del directorio donde se almacenan los archivos necesarios para Kerberos. Si se proporciona directory_name, se espera que copie los archivos de configuración de Kerberos en este objeto de directorio.
  • kerberos_service_name: especifica un nombre para utilizar como nombre de servicio de Kerberos. Este parámetro es opcional.

    Valor por defecto: si no se especifica, el valor kerberos_service_name se define en el GUID de la instancia de Autonomous Database.

Parámetros de AZURE_AD:

  • tenant_id: ID de inquilino de la cuenta de Azure. El ID de inquilino especifica el registro de la aplicación Azure AD de la instancia de Autonomous Database.
  • application_id: ID de aplicación de Azure creado en Azure AD para asignar asignaciones de roles/esquemas para la autenticación externa en la instancia de Autonomous Database.
  • application_id_uri: URI único asignado a la aplicación Azure.

    Este es el identificador de la instancia de Autonomous Database. El nombre de dominio debe ser completo (esto soporta el acceso a recursos entre arrendamientos).

    La longitud máxima para este parámetro es 256 caracteres.

Excepciones

Excepción Error Descripción
invalid_ext_auth ORA-20004

Consulte el mensaje adjunto para obtener una explicación detallada.

Notas de uso

  • Con type OCI_IAM, si la entidad de recurso no está activado en la instancia de Autonomous Database, esta rutina activa la entidad de recurso con DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.

  • Con este procedimiento se definen los parámetros del sistema IDENTITY_PROVIDER_TYPE e IDENTITY_PROVIDER_CONFIG en los usuarios necesarios para acceder a la instancia con autenticación y autorización de Oracle Cloud Infrastructure Identity and Access Management.

Ejemplos

Activar la autenticación OCI_IAM

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'OCI_IAM',
     force=> TRUE );
END;
/

PL/SQL procedure successfully completed.

Activar la autenticación CMU para Microsoft Active Directory

Debe transferir un nombre de directorio que contenga los archivos de configuración de CMU mediante el argumento JSON params.

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'CMU',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'CMU_DIR'); // CMU_DIR directory object already exists
END;
/

PL/SQL procedure successfully completed.

Debe transferir un URI de ubicación que apunte a una ubicación de Object Storage que contenga archivos de configuración de CMU mediante el argumento JSON params.

BEGIN
   DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
       type     => 'CMU',
       params   => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                               'credential_name' value 'my_credential_name')
   );
END;
/

PL/SQL procedure successfully completed.

Activar la autenticación de Azure AD

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'AZURE_AD',
     force => TRUE,
     params   => JSON_OBJECT( 'tenant_id' VALUE '....',
                              'application_id' VALUE '...',
                              'application_id_uri' VALUE '.....' ));
END;
/

PL/SQL procedure successfully completed.

Activación de autenticación de Kerberos

Debe transferir un nombre de directorio que contenga archivos de configuración de Kerberos mediante el argumento JSON params.

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR'); // KERBEROS_DIR directory object already exists
END;
/

PL/SQL procedure successfully completed.

Transfiere un URI de ubicación que apunta a una ubicación de Object Storage que contiene archivos de configuración de Kerberos mediante el argumento JSON params:

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('location_uri' value 'https://objectstorage.us-phoenix-1.oraclecloud.com/n/namespace-string/b/bucketname/o',
                           'credential_name' value 'my_credential_name');
END;
/

Transfiere un nombre de servicio con kerberos_service_name en el argumento JSON params:

BEGIN DBMS_CLOUD_ADMIN.ENABLE_EXTERNAL_AUTHENTICATION(
     type => 'KERBEROS',
     force => TRUE,
     params => JSON_OBJECT('directory_name' value 'KERBEROS_DIR', // KERBEROS_DIR directory object already exists
                           'kerberos_service_name' value 'oracle' ));
END;
/

Una vez que Kerberos esté activado en la instancia de Autonomous Database, utilice la siguiente consulta para ver el nombre del servicio Kerberos:

SELECT SYS_CONTEXT('USERENV','KERBEROS_SERVICE_NAME') FROM DUAL;

DBMS_CLOUD_ADMIN Excepciones

En la siguiente tabla se describen las excepciones para DBMS_CLOUD_ADMIN.

Excepción Código Descripción
invalid_service 20.001 Se ha especificado un servicio no válido.
service_not_exist 20.002 Un servicio especificado no existe.
default_service 20.003 Un servicio especificado no se puede modificar.
invalid_char_set 20.029 Falta la condición previa o juego de caracteres (nacional) no válido.
invalid_enc_key_attr 20.030 El argumento para la gestión de claves falta o no es válido.
Already Using Oracle Managed Key 0

La base de datos ya está utilizando una clave gestionada de Oracle. Está intentando llamar al procedimiento mientras ya utiliza una clave gestionada por Oracle.

Argument Provided for the procedure ORA-0000

Se proporciona un argumento para el procedimiento. Mensaje de error esperado: No se necesitan argumentos para este procedimiento.