Pacchetto DBMS_CLOUD_ADMIN

In questa sezione vengono descritti i sottoprogrammi DBMS_CLOUD_ADMIN forniti con Autonomous Database.

Sottoprogramma Descrizione

ATTACH_FILE_SYSTEM Procedura

Questa procedura consente di allegare un file system in una directory del database.

CREATE_DATABASE_LINK Procedura

Questa procedura crea un database link a un database di destinazione. Sono disponibili opzioni per creare un database link a un'altra istanza di Autonomous Database, a un'istanza di Oracle Database che non è un'Autonomous Database o a un'altra istanza non di Oracle Database utilizzando la connettività eterogenea gestita da Oracle.

DETACH_FILE_SYSTEM Procedura

Questa procedura scollega un file system da una directory del database.

DISABLE_EXTERNAL_AUTHENTICATION Procedura

Questa procedura disabilita l'autenticazione esterna per l'istanza di Autonomous Database.

DROP_DATABASE_LINK Procedura

Questa procedura elimina un database link.

ENABLE_EXTERNAL_AUTHENTICATION Procedura

Questa procedura consente a un utente di collegarsi ad Autonomous Database utilizzando lo schema di autenticazione esterno specificato.

ATTACH_FILE_SYSTEM Procedura

Questa procedura allega un file system nel database.

La procedura DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM allega un file system nel database e memorizza le informazioni sul file system nella vista DBA_CLOUD_FILE_SYSTEMS.

Sintassi

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
);

Parametri

Parametro Descrizione

file_system_name

Specifica il nome del file system.

Questo parametro è obbligatorio.

file_system_location

Specifica la posizione del file system.

Il valore fornito con file_system_location è costituito da un nome dominio completamente qualificato (FQDN) e da un percorso file nel formato: FQDN:file_path.

Ad esempio:

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

    Per Oracle Cloud Infrastructure File Storage impostare il nome FQDN in Mostra opzioni avanzate quando si crea un file system. Per maggiori informazioni, vedere Creazione dei file system.

  • Percorso file: /results

Questo parametro è obbligatorio.

directory_name

Specifica la directory in cui si trova il file system allegato. La directory deve essere già stata creata.

Questo parametro è obbligatorio.

description

(Facoltativo) Fornisce la descrizione del task.

params

Stringa JSON che fornisce un parametro aggiuntivo per il file system.

  • nfs_version: specifica la versione NFS da utilizzare quando è collegato NFS (NFSv3 o NFSv4). Valori validi: 3, 4.

    Valore predefinito: 3

Esempi:

Collegare a un file system 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;
/     

Collegare a un file system 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;                                                        
/

Note sull'uso

  • Per eseguire questa procedura, è necessario eseguire il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.

  • Per allegare un file system mediante DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM, è necessario disporre del privilegio WRITE sull'oggetto directory nel database.

  • La procedura DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM può collegare solo un servizio di storage di file privato nei database con endpoint privati abilitati.

    Per ulteriori informazioni, vedere OCI File Storage Service e Configure a Development System to Access the Database.

  • La procedura DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM esegue la ricerca del nome host del file system di rete nella rete cloud virtuale (VCN) del cliente. L'errore "ORA-20000: Mounting NFS fails" viene restituito se non è possibile individuare il nome host specificato nella posizione.

  • Oracle Cloud Infrastructure File Storage utilizza NFSv3 per condividere

  • Se ti colleghi a sistemi non Oracle Cloud Infrastructure File Storage, la procedura supporta NFSv3 e NFSv4

  • Se si dispone di un server NFS collegato che utilizza NFSv3 e la versione NFS viene aggiornata a NFSv4 nel server NFS, è necessario eseguire DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM, quindi DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM (utilizzando il parametro params con nfs_version impostato su 4). Ciò collega NFS con il protocollo corrispondente in modo che Autonomous Database possa accedere al server NFSv4. Senza scollegare e quindi ricollegare, il server NFS non sarà accessibile e potrebbe essere visualizzato un errore, ad esempio "Protocol not supported".

CREATE_DATABASE_LINK Procedura

Questa procedura crea un database link a un database di destinazione nello schema che chiama l'API.

I moduli sovraccaricati supportano quanto segue:

  • Quando si utilizza il parametro gateway_params, è possibile creare un database link con la connettività eterogenea gestita da Oracle in cui il collegamento è a un database non Oracle supportato.

  • Quando si utilizza il parametro rac_hostnames, questo consente di creare un database link da un Autonomous Database in un endpoint privato a un database Oracle RAC di destinazione. In questo caso, utilizzare il parametro rac_hostnames per specificare i nomi host di uno o più nodi singoli del database Oracle RAC di destinazione.

Sintassi

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);

Parametri

Parametro Descrizione

db_link_name

Il nome del database link da creare.

hostname

Nome host per il database di destinazione.

Non è consentito specificare localhost per hostname.

Quando si specifica una connessione con la connettività eterogenea gestita da Oracle fornendo il parametro gateway_params, tenere presente quanto riportato di seguito.

  • Quando il valore db_type è google_bigquery, il valore hostname non viene utilizzato ed è possibile fornire un valore quale example.com.

  • Quando il valore db_type è snowflake, hostname è l'identificativo del conto Snowflake. Per trovare l'identificativo dell'account Snowflake, vedere Formati identificativi account per piattaforma cloud e area.

Utilizzare questo parametro o rac_hostnames, non utilizzare entrambi.

L'input DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK deve menzionare il nome di scansione dell'Autonomous Database dedicato di destinazione come parametro 'hostname'.

rac_hostnames

Specifica i nomi host per il database Oracle RAC di destinazione. Il valore è un array JSON che specifica uno o più singoli nomi host per i nodi del database Oracle RAC di destinazione. È possibile passare più nomi host in JSON, separati da un ",". Ad esempio:

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

Quando la destinazione è un database Oracle RAC, utilizzare il parametro rac_hostnames per specificare uno o più nomi host con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK. Ciò consente di sfruttare le funzionalità ad alta disponibilità di Oracle RAC. L'uso di un indirizzo IP, di un IP SCAN o di un nome host SCAN nel valore rac_hostnames non è supportato.

Quando si specifica una lista di nomi host nel parametro rac_hostnames, CREATE_DATABASE_LINK utilizza tutti i nomi host specificati come indirizzi nella stringa di connessione. Se uno degli host specificati non è disponibile nel database Oracle RAC di destinazione, Autonomous Database tenta automaticamente di connettersi utilizzando un altro nome host dalla lista.

Utilizzare questo parametro o hostname, non utilizzare entrambi.

Non è consentito specificare localhost per un valore rac_hostname.

port

Specifica la porta per le connessioni al database di destinazione.

Quando si specifica una connessione con la connettività eterogenea gestita da Oracle utilizzando il parametro gateway_params, impostare la porta in base al valore db_type:

  • awsredshift: utilizzare la porta 5439
  • azure: utilizzare la porta 1433
  • db2: utilizzare la porta 2500 per le versioni Db2 >= 11.5.6
  • db2: utilizzare la porta 5000 per Db2 versioni <= 11.5.5
  • google_analytics: utilizzare la porta 443
  • google_bigquery: utilizzare la porta 443
  • hive: utilizzare la porta 433
  • mongodb: utilizzare la porta 27017
  • mysql: utilizzare la porta 3306
  • mysql_community: utilizzare la porta 3306
  • postgres: utilizzare la porta 5432
  • salesforce: utilizzare la porta 19937
  • servicenow: utilizzare la porta 443
  • snowflake: utilizzare la porta 443

service_name

service_name per il database a cui collegarsi. Per un Autonomous Database di destinazione, trovare il nome del servizio in base a uno dei metodi riportati di seguito.

  • Cercare la connessione nel file tnsnames.ora del file wallet.zip scaricato da un Autonomous Database.

  • Fare clic sulla connessione al database nella console di Oracle Cloud Infrastructure. Ogni stringa di connessione elencata nella colonna Stringa di connessione include una voce service_name con la stringa di connessione per il servizio corrispondente. Per ulteriori informazioni, vedere Visualizza le stringhe di connessione per un Autonomous Database.

  • Query sulla vista V$SERVICES. Ad esempio:

    SELECT name FROM V$SERVICES;

Quando si specifica una connessione con la connettività eterogenea gestita da Oracle utilizzando il parametro gateway_params, service_name è il nome del database non Oracle.

ssl_server_cert_dn

Il valore DN trovato nel certificato del server.

La connettività eterogenea gestita da Oracle è preconfigurata con un wallet che contiene la maggior parte dei certificati SSL radice e intermedi sicuri comuni. Il valore ssl_server_cert_dn deve essere NULL quando si fornisce il parametro gateway_params o non si include il parametro ssl_server_cert_dn (il valore predefinito è NULL).

Collegamento dell'endpoint pubblico a una destinazione Autonomous Database senza un wallet:

Per connettersi a una destinazione Autonomous Database su un endpoint pubblico senza un wallet (TLS):

  • Il parametro directory_name deve essere NULL.
  • Il parametro ssl_server_cert_dn deve essere NULL o non includere questo parametro (il valore predefinito è NULL).

Collegamento endpoint privato senza wallet:

Per connettersi a un Oracle Database su un endpoint privato senza un wallet, effettuare le operazioni riportate di seguito.

  • Il database di destinazione deve trovarsi in un endpoint privato.
  • Il parametro directory_name deve essere NULL.
  • Il parametro ssl_server_cert_dn deve essere NULL o non includere questo parametro (l'impostazione predefinita è NULL).
  • Il parametro private_target deve essere TRUE.
credential_name

Il nome di una credenziale memorizzata creata con DBMS_CLOUD.CREATE_CREDENTIAL. Queste sono le credenziali per accedere al database di destinazione.

directory_name

La directory del file cwallet.sso. Il valore predefinito per questo parametro è 'data_pump_dir'.

La connettività eterogenea gestita da Oracle è preconfigurata con un wallet che contiene la maggior parte dei certificati SSL radice e intermedi sicuri comuni. Il parametro directory_name non è obbligatorio quando si fornisce il parametro gateway_params.

Collegamento dell'endpoint pubblico a una destinazione Autonomous Database senza un wallet:

Per connettersi a un Autonomous Database su un endpoint pubblico senza un wallet (TLS), effettuare le operazioni riportate di seguito.

  • Il parametro directory_name deve essere NULL.
  • Il parametro ssl_server_cert_dn deve essere NULL o non includere questo parametro (il valore predefinito è NULL).

Inoltre, per connettersi a un Autonomous Database con TCP, il parametro ssl_server_cert_dn deve essere NULL oppure non includere questo parametro (il valore predefinito è NULL).

Collegamento endpoint privato senza wallet:

Per connettersi a un Oracle Database di destinazione su un endpoint privato senza un wallet, effettuare le operazioni riportate di seguito.

  • Il database di destinazione deve trovarsi in un endpoint privato.
  • Il parametro directory_name deve essere NULL.
  • Il parametro ssl_server_cert_dn deve essere NULL o non includere questo parametro (il valore predefinito è NULL).
  • Il parametro private_target deve essere TRUE.
gateway_link

Indica se il database link viene creato in un altro Oracle Database o in un Oracle Database Gateway.

Se gateway_link è impostato su FALSE, specifica un database link a un altro Autonomous Database o a un altro Oracle Database.

Se gateway_link è impostato su TRUE, questa opzione specifica un database link per un sistema non Oracle. Viene creato un descrittore di connessione nella definizione del database link che specifica (HS=OK).

Quando gateway_link è impostato su TRUE e gateway_params è NULL, specifica un database link a un gateway Oracle gestito dal cliente.

Il valore predefinito di questo parametro è FALSE.

public_link

Indica se il database link viene creato come database link pubblico.

Per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK con questo parametro impostato su TRUE, l'utente che richiama la procedura deve disporre del privilegio EXECUTE sulla credenziale associata al database link pubblico e deve disporre del privilegio di sistema CREATE PUBLIC DATABASE LINK. Il privilegio EXECUTE sulla credenziale può essere concesso dall'utente ADMIN o dal proprietario della credenziale.

Il valore predefinito di questo parametro è FALSE.

private_target

Quando un database link accede a un nome host che deve essere risolto in un server DNS della VCN, specificare il parametro private_target con valore TRUE.

Se private_target è TRUE, il parametro hostname deve essere un nome host singolo (in un endpoint privato non è supportato l'uso di un indirizzo IP, un IP SCAN o un nome host SCAN).

Il valore predefinito di questo parametro è FALSE.

gateway_params

db_type Questo parametro specifica il tipo di database di destinazione per la connettività eterogenea gestita da Oracle per connettersi ai database non Oracle. Il valore db_type è uno dei seguenti:

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Per ulteriori informazioni sul supporto gateway_params, vedere Note sull'uso se db_type è google_bigquery.

  • hive

    * Per ulteriori informazioni sul supporto gateway_params, vedere Note sull'uso se db_type è hive.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Per ulteriori informazioni sul supporto gateway_params, vedere Note sull'uso se db_type è salesforce.

  • servicenow

    * Per ulteriori informazioni sul supporto gateway_params, vedere Note sull'uso se db_type è servicenow.

  • snowflake

    * Per ulteriori informazioni sul supporto gateway_params, vedere Note sull'uso se db_type è snowflake.

  • NULL

    Quando gateway_params è NULL e gateway_link è impostato su TRUE, specifica un database link a un gateway Oracle gestito dal cliente.

Specificare il parametro con il form json_object.

Ad esempio:

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

Se gateway_params è NULL e private_target è TRUE, se directory_name è NULL, viene creato un database link basato su TCP.

Se gateway_params è NULL e private_target è TRUE, se directory_name è NULL, viene creato un database link basato su TCPS.

Note sull'uso

  • Quando si specifica il parametro gateway_params, per alcuni valori db_type sono supportati parametri gateway_params aggiuntivi:

    db_type Valori gateway_params aggiuntivi
    google_analytics

    Se db_type è google_analytics, la credenziale specificata deve essere una credenziale Google OAuth (gcp_oauth2) Per ulteriori informazioni, vedere Procedura CREATE_CREDENTIAL).

    google_bigquery

    Se db_type è google_bigquery, la credenziale specificata deve essere una credenziale Google OAuth (gcp_oauth2) Per ulteriori informazioni, vedere Procedura CREATE_CREDENTIAL).

    Se db_type è google_bigquery, il parametro project è valido. Questo parametro specifica il nome del progetto per google_bigquery ed è obbligatorio.

    Il nome della tabella specificato quando si utilizza SELECT con Google BigQuery deve essere racchiuso tra virgolette. Ad esempio:

    SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
    hive

    Se db_type è hive, il parametro http_path è valido. Questo parametro specifica il valore HttpPath, se necessario, per connettersi all'istanza Hive.

    salesforce

    Se db_type è salesforce, il parametro security_token è valido. Un token di sicurezza è un codice alfanumerico con distinzione tra maiuscole e minuscole. Per accedere a Salesforce è necessario specificare un valore security_token. Ad esempio:

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

    Per ulteriori informazioni, vedere Reimposta il token di sicurezza.

    servicenow

    Per connettersi a ServiceNow e ottenere i dati, è necessario fornire i parametri gateway directory_name e file_name. Questi parametri specificano un file modello (file di configurazione REST) che esegue il mapping della risposta JSON al modello relazionale. Il file modello specifica gli endpoint, il mapping delle tabelle e il codice di risposta HTTP per l'elaborazione della risposta JSON. Per ulteriori informazioni, vedere Sintassi dei file modello e File modello di esempio.

    Quando si utilizza il parametro gateway_params con db_type servicenow, sono supportate due opzioni:

    • Autenticazione di base: è necessario fornire il parametro gateway_params db_type con il valore 'servicenow' e fornire i parametri directory_name e file_name insieme alle credenziali di tipo nome utente/password.

    • OAuth 2.0 Autenticazione: è necessario fornire il parametro gateway_params db_type con il valore 'servicenow' e i parametri directory_name, file_name e token_uri, insieme alle credenziali di tipo OAuth.

    Il parametro directory_name specifica la directory con il file di configurazione REST ServiceNow. È possibile creare questa directory come indicato di seguito.

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Ottenere e scaricare il file di configurazione REST ServiceNow nella directory specificata. Ad esempio:

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

    Impostare il valore file_name sul nome del file di configurazione REST scaricato, "servicenow.rest".

    Successivamente, puoi utilizzare il file di configurazione REST ServiceNow con l'autenticazione di base o OAuth2.0.

    snowflake

    Se db_type è SNOWFLAKE, i parametri facoltativi: role, schema e warehouse sono validi. Questi valori specificano un valore di schema, ruolo o warehouse diverso da quello predefinito. Ad esempio:

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
  • Quando si utilizza il parametro private_target, tenere presente che i database link da un Autonomous Database a un servizio di database che si trova su un endpoint privato sono supportati solo nelle aree commerciali e nelle aree del governo degli Stati Uniti.

    Questa funzione è abilitata per impostazione predefinita in tutte le aree commerciali.

    Questa funzione è abilitata per impostazione predefinita nelle aree del governo degli Stati Uniti per i database di cui è stato appena eseguito il provisioning.

    Per i database del governo degli Stati Uniti esistenti in un endpoint privato, se si desidera creare database link da un Autonomous Database a una destinazione in un'area del governo degli Stati Uniti, inoltrare una richiesta di servizio all'indirizzo Oracle Cloud Support e richiedere di abilitare l'endpoint privato nella funzione di collegamento al database delle aree governative.

    Le regioni del governo degli Stati Uniti includono quanto segue:

  • Quando si esegue la connessione a un database non Oracle, il collegamento al database è supportato solo se il database di destinazione è accessibile tramite un IP pubblico o un nome host pubblico.
  • Per eseguire DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK con un utente diverso da ADMIN, è necessario concedere i privilegi EXECUTE e CREATE DATABASE LINK a tale utente.Ad esempio, eseguire il comando seguente come ADMIN per concedere i privilegi a atpc_user:

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

    Inoltre, quando si crea un database link in uno schema diverso dallo schema ADMIN, ad esempio in uno schema denominato atpc_user, lo schema atpc_user deve essere proprietario della credenziale utilizzata con DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK.

  • Per ogni directory specificata con il parametro directory_name è valido un solo file wallet. È possibile caricare un solo file cwallet.sso alla volta nella directory scelta per i file wallet. Ciò significa che con un cwallet.sso in una directory è possibile creare solo database link ai database per i quali il wallet in tale directory è valido. Per utilizzare più file cwallet.sso con database link, è necessario creare directory aggiuntive e inserire ogni file cwallet.sso in una directory diversa.

    Per informazioni sulla creazione di directory, vedere Crea directory in Autonomous Database.

  • Per creare un database link a un Autonomous Database, impostare GLOBAL_NAMES su FALSE nel database di origine (non Autonomous Database).

    SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
     
    System altered.
    
    SQL> SHOW PARAMETER GLOBAL_NAMES
    NAME                     TYPE        VALUE
    ----------------------   ----------- -----------
    global_names             boolean     FALSE
    
  • Quando il parametro private_target è TRUE, il parametro hostname specifica un host privato all'interno della VCN.

Esempi

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;
/

Il nome della tabella specificato quando si utilizza SELECT con Google BigQuery o Google Analytics deve essere tra virgolette. Ad esempio:

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

Utilizzare il parametro rac_hostnames con un database Oracle RAC di destinazione in un endpoint privato.

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;
/

DETACH_FILE_SYSTEM Procedura

Questa procedura scollega un file system dal database.

La procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM scollega un file system dal database. Oltre a ciò, la procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM rimuove anche le informazioni sul file system dalla vista DBA_CLOUD_FILE_SYSTEMS.

Sintassi

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

Parametri

Parametro Descrizione

file_system_name

Specifica il nome del file system.

Questo parametro è obbligatorio.

Esempio:

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

Note sull'uso

  • Per eseguire questa procedura, è necessario eseguire il login come utente ADMIN o disporre del privilegio EXECUTE su DBMS_CLOUD_ADMIN.

  • Per scollegare un file system da una directory mediante la procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM, è necessario disporre del privilegio WRITE sull'oggetto directory nel database.

  • La procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM può scollegare un servizio di storage di file privato solo nei database con endpoint privati abilitati.

    Per ulteriori informazioni, vedere OCI File Storage Service e Configure a Development System to Access the Database.

  • La procedura DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM esegue la ricerca del nome host del file system di rete nella rete cloud virtuale (VCN) del cliente. L'errore "ORA-20000: Mounting NFS fails" viene restituito se non è possibile individuare il nome host specificato nella posizione.

DISABLE_EXTERNAL_AUTHENTICATION Procedura

Disabilita l'autenticazione utente con schemi di autenticazione esterni per il database.

Sintassi

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

Eccezioni

Eccezione Errore Descrizione
invalid_ext_auth ORA-20004

Vedere il messaggio di accompagnamento per una spiegazione dettagliata.

Esempio

BEGIN 
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

PL/SQL procedure successfully completed.

DROP_DATABASE_LINK Procedura

Questa procedura elimina un database link.

Sintassi

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

Parametri

Parametro Descrizione

db_link_name

Il nome del database link da eliminare.

public_link

Per eseguire DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK con public_link impostato su TRUE, è necessario disporre del privilegio di sistema DROP PUBLIC DATABASE LINK.

Il valore predefinito di questo parametro è FALSE.

Esempio

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

Note sull'uso

Al termine, utilizzare un database link ed eseguire DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK per garantire la sicurezza del database Oracle, rimuovere i file wallet memorizzati. Ad esempio:

  • Rimuovere il file wallet nell'area di memorizzazione degli oggetti.

  • Utilizzare DBMS_CLOUD.DELETE_FILE per rimuovere il file wallet dalla directory data_pump_dir o dalla directory definita dall'utente in cui è stato caricato il file wallet.

ENABLE_EXTERNAL_AUTHENTICATION Procedura

Consente agli utenti di eseguire il login al database con schemi di autenticazione esterni.

Sintassi

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

Parametro

Parametro Descrizione

type

Specifica il tipo di autenticazione esterna. Valori validi: o .

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

force

(Facoltativo) Eseguire l'override di uno schema di autenticazione esterno attualmente abilitato. I valori validi sono TRUE o FALSE.

Il valore predefinito è FALSE.

params

Stringa JSON che fornisce parametri aggiuntivi per l'autenticazione esterna.

Parametri CMU:

  • location_uri: specifica l'URI di storage cloud per il bucket in cui vengono memorizzati i file necessari per la utility CMU.

    Se si specifica location_uri, nel database viene creato un oggetto directory nome fisso CMU_WALLET_DIR nel percorso 'cmu_wallet' per salvare i file di configurazione CMU. In questo caso, non è necessario fornire il parametro directory_name.

  • credential_name: specifica le credenziali utilizzate per scaricare i file di configurazione CMU dall'area di memorizzazione degli oggetti all'oggetto directory.

    Il valore predefinito è NULL, che consente di fornire un URL pubblico, preautenticato o prefirmato per il bucket o la sottocartella dell'area di memorizzazione degli oggetti.

  • directory_name: specifica il nome della directory in cui sono memorizzati i file di configurazione richiesti per CMU. Se viene fornito directory_name, è necessario copiare i file di configurazione CMU dsi.ora e cwallet.sso in questo oggetto directory.

Parametri KERBEROS:

  • location_uri: specifica l'URI di storage cloud per il bucket in cui vengono memorizzati i file richiesti per Kerberos.

    Se si specifica location_uri, nel database viene creato un oggetto directory nome fisso KERBEROS_DIR per salvare i file di configurazione Kerberos. In questo caso, non è necessario fornire il parametro directory_name.

  • credential_name: specifica la credenziale utilizzata per scaricare i file di configurazione Kerberos dalla posizione dell'area di memorizzazione degli oggetti all'oggetto directory.

    Il valore predefinito è NULL, che consente di fornire un URL pubblico, preautenticato o prefirmato per il bucket o la sottocartella dell'area di memorizzazione degli oggetti.

  • directory_name: specifica il nome della directory in cui vengono memorizzati i file richiesti per Kerberos. Se si specifica directory_name, si prevede di copiare i file di configurazione Kerberos in questo oggetto directory.
  • kerberos_service_name: specifica un nome da utilizzare come nome del servizio Kerberos. Si tratta di un parametro facoltativo.

    Valore predefinito: se non specificato, il valore kerberos_service_name viene impostato sul GUID dell'istanza di Autonomous Database.

Parametri AZURE_AD:

  • tenant_id: ID tenant dell'account Azure. ID tenant specifica la registrazione dell'applicazione Azure AD dell'istanza di Autonomous Database.
  • application_id: ID applicazione Azure creato in Azure AD per assegnare ruoli/mapping di schema per l'autenticazione esterna nell'istanza di Autonomous Database.
  • application_id_uri: URI univoco assegnato all'applicazione Azure.

    Si tratta dell'identificativo dell'istanza di Autonomous Database. Il nome deve essere qualificato per il dominio (supporta l'accesso alle risorse tra tenancy).

    La lunghezza massima per questo parametro è di 256 caratteri.

Eccezioni

Eccezione Errore Descrizione
invalid_ext_auth ORA-20004

Vedere il messaggio di accompagnamento per una spiegazione dettagliata.

Note sull'uso

  • Con type OCI_IAM, se il principal della risorsa non è abilitato nell'istanza di Autonomous Database, questa routine abilita il principal della risorsa con DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.

  • Questa procedura imposta i parametri di sistema IDENTITY_PROVIDER_TYPE e IDENTITY_PROVIDER_CONFIG agli utenti richiesti per accedere all'istanza con l'autenticazione e l'autorizzazione Oracle Cloud Infrastructure Identity and Access Management.

Esempi

Abilita autenticazione OCI_IAM

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

PL/SQL procedure successfully completed.

Abilita autenticazione CMU per Microsoft Active Directory

Si passa un nome di directory contenente i file di configurazione CMU tramite l'argomento 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.

Si passa un URI di posizione che punta a una posizione di storage degli oggetti che contiene file di configurazione CMU tramite l'argomento 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.

Abilita autenticazione 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.

Abilitazione dell'autenticazione Kerberos

Si passa un nome di directory contenente i file di configurazione Kerberos tramite l'argomento 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.

Si passa in un URI di posizione che punta a una posizione di storage degli oggetti che contiene i file di configurazione Kerberos tramite l'argomento 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;
/

Si passa un nome di servizio con kerberos_service_name nell'argomento 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;
/

Dopo che Kerberos è stato abilitato nell'istanza di Autonomous Database, utilizzare la query riportata di seguito per visualizzare il nome del servizio Kerberos.

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

DBMS_CLOUD_ADMIN Eccezioni

Nella tabella seguente vengono descritte le eccezioni per DBMS_CLOUD_ADMIN.

Eccezione Codice Descrizione
invalid_service 20.001 È stato specificato un servizio non valido.
service_not_exist 20.002 Il servizio specificato non esiste.
default_service 20.003 Impossibile modificare un servizio specificato.
invalid_char_set 20.029 Precondizione mancante o set di caratteri (nazionali) non valido.
invalid_enc_key_attr 20.030 Argomento mancante o non valido per la gestione delle chiavi.
Already Using Oracle Managed Key 0

Il database sta già utilizzando una chiave gestita Oracle. Si sta tentando di richiamare la procedura mentre si utilizza già una chiave gestita da Oracle.

Argument Provided for the procedure ORA-0000

Viene fornito un argomento per la procedura. Messaggio di errore previsto: nessun argomento richiesto per questa procedura.