DBMS_CLOUD_ADMIN-Package

In diesem Abschnitt werden die DBMS_CLOUD_ADMIN-Unterprogramme beschrieben, die mit Autonomous Database bereitgestellt werden.

Unterprogramm Beschreibung

ATTACH_FILE_SYSTEM-Prozedur

Diese Prozedur hängt ein Dateisystem in einem Verzeichnis in der Datenbank an.

Prozedur CREATE_DATABASE_LINK

Diese Prozedur erstellt einen Datenbanklink zu einer Zieldatenbank. Es gibt Optionen zum Erstellen eines Datenbanklinks zu einer anderen Autonomous Database-Instanz, zu einer Oracle Database, die kein Autonomous Database ist, oder zu einer Nicht-Oracle Database mit von Oracle verwalteter heterogener Konnektivität.

DETACH_FILE_SYSTEM-Prozedur

Mit diesem Verfahren wird ein Dateisystem von einem Verzeichnis in der Datenbank getrennt.

Prozedur DISABLE_EXTERNAL_AUTHENTICATION

Diese Prozedur deaktiviert die externe Authentifizierung für die Autonomous Database-Instanz.

Prozedur DROP_DATABASE_LINK

Diese Prozedur löscht einen Datenbanklink.

Prozedur ENABLE_EXTERNAL_AUTHENTICATION

Mit dieser Prozedur kann sich ein Benutzer mit dem angegebenen externen Authentifizierungsschema bei Autonomous Database anmelden.

ATTACH_FILE_SYSTEM-Prozedur

Dieses Verfahren hängt ein Dateisystem in der Datenbank an.

Die Prozedur DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM hängt ein Dateisystem in der Datenbank an und speichert Informationen zum Dateisystem in der Ansicht DBA_CLOUD_FILE_SYSTEMS.

Syntax

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

Parameter

Parameter Beschreibung

file_system_name

Der Name des Dateisystems.

Dieser Parameter ist erforderlich.

file_system_location

Gibt den Speicherort des Dateisystems an.

Der Wert, den Sie mit file_system_location angeben, besteht aus einem vollqualifizierten Domainnamen (FQDN) und einem Dateipfad im Format: FQDN:file_path.

Beispiel:

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

    Legen Sie für Oracle Cloud Infrastructure File Storage den FQDN beim Erstellen eines Dateisystems unter Erweiterte Optionen anzeigen fest. Weitere Informationen finden Sie unter Dateisysteme erstellen.

  • Dateipfad: /results

Dieser Parameter ist erforderlich.

directory_name

Gibt den Verzeichnisnamen für das angehängte Dateisystem an. Das Verzeichnis muss vorhanden sein.

Dieser Parameter ist erforderlich.

description

(Optional) Gibt eine Beschreibung der Aufgabe an.

params

Eine JSON-Zeichenfolge, die einen zusätzlichen Parameter für das Dateisystem bereitstellt.

  • nfs_version: Gibt die NFS-Version an, die verwendet werden soll, wenn NFS angehängt ist (NFSv3 oder NFSv4). Gültige Werte: 3, 4.

    Standardwert: 3

Beispiele:

An ein NFSv3-Dateisystem anhängen:

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

An ein NFSv4-Dateisystem anhängen:

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

Verwendungshinweise

  • Um diese Prozedur auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN besitzen.

  • Sie benötigen die Berechtigung WRITE für das Verzeichnisobjekt in der Datenbank, um ein Dateisystem mit DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM anzuhängen.

  • Die Prozedur DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM kann nur einen privaten File Storage-Service in Datenbanken mit aktivierten privaten Endpunkten anhängen.

    Weitere Informationen finden Sie unter OCI File Storage Service und Entwicklungssystem für den Zugriff auf die Datenbank konfigurieren.

  • Die Prozedur DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM sucht den Hostnamen des Netzwerkdateisystems im virtuellen Cloud-Netzwerk (VCN) des Kunden. Der Fehler "ORA-20000: Mounting NFS fails" wird zurückgegeben, wenn der im Speicherort angegebene Hostname nicht gefunden werden kann.

  • Oracle Cloud Infrastructure File Storage verwendet NFSv3 zum Teilen

  • Wenn Sie an Nicht-Oracle Cloud Infrastructure File Storage-Systeme anhängen, unterstützt die Prozedur NFSv3 und NFSv4

  • Wenn ein NFS-Server angehängt ist, der NFSv3 verwendet und die NFS-Version auf dem NFS-Server in NFSv4 aktualisiert wird, müssen Sie DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM und dann DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM ausführen (mit dem Parameter params, bei dem nfs_version auf 4 gesetzt ist). Dadurch wird NFS mit dem übereinstimmenden Protokoll angehängt, sodass Autonomous Database auf den NFSv4-Server zugreifen kann. Ohne Trennen und erneutes Anhängen ist der NFS-Server nicht zugänglich, und es kann zu einem Fehler wie "Protocol not supported" kommen.

Prozedur CREATE_DATABASE_LINK

Diese Prozedur erstellt einen Datenbanklink zu einer Zieldatenbank im Schema, das die API aufruft.

Die überladenen Formulare unterstützen Folgendes:

  • Wenn Sie den Parameter gateway_params verwenden, können Sie damit einen Datenbanklink mit einer von Oracle verwalteten heterogenen Verbindung erstellen, wobei der Link zu einer unterstützten nicht von Oracle unterstützten Datenbank ist.

  • Wenn Sie den Parameter rac_hostnames verwenden, können Sie damit einen Datenbanklink von einer Autonomous Database-Instanz auf einem privaten Endpunkt zu einer Oracle RAC-Zieldatenbank erstellen. In diesem Fall geben Sie mit dem Parameter rac_hostnames die Hostnamen eines oder mehrerer einzelner Knoten der Oracle RAC-Zieldatenbank an.

Syntax

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

Parameter

Parameter Beschreibung

db_link_name

Name des zu erstellenden Datenbanklinks.

hostname

Der Hostname der Zieldatenbank.

Die Angabe von localhost für hostname ist nicht zulässig.

Wenn Sie eine Verbindung mit von Oracle verwalteter heterogener Konnektivität durch Angabe des Parameters gateway_params angeben, beachten Sie Folgendes:

  • Wenn der db_type-Wert google_bigquery lautet, wird hostname nicht verwendet, und Sie können einen Wert wie example.com angeben.

  • Wenn der db_type-Wert snowflake lautet, ist hostname die Snowflake-Account-ID. Informationen zum Suchen Ihrer Snowflake-Account-ID finden Sie unter Account Identifier Formats by Cloud Platform and Region.

Verwenden Sie diesen Parameter oder rac_hostnames. Verwenden Sie nicht beide.

In der Eingabe von DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK muss der Scanname des dedizierten Autonomous Database-Ziels als "hostname"-Parameter angegeben werden.

rac_hostnames

Gibt Hostnamen für die Oracle RAC-Zieldatenbank an. Der Wert ist ein JSON-Array, das einen oder mehrere individuelle Hostnamen für die Knoten der Oracle RAC-Zieldatenbank angibt. Mehrere Hostnamen können in JSON übergeben werden, getrennt durch ein ",". Beispiel:

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

Wenn das Ziel eine Oracle RAC-Datenbank ist, geben Sie mit dem Parameter rac_hostnames einen oder mehrere Hostnamen mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK an. Auf diese Weise können Sie die High Availability-Funktionen von Oracle RAC nutzen. Die Verwendung einer IP-Adresse, einer SCAN-IP oder eines SCAN-Hostnamens im Wert rac_hostnames wird nicht unterstützt.

Wenn Sie eine Liste der Hostnamen im Parameter rac_hostnames angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts nicht in der Oracle RAC-Zieldatenbank verfügbar ist, versucht Autonomous Database automatisch, eine Verbindung mit einem anderen Hostnamen aus der Liste herzustellen.

Verwenden Sie diesen Parameter oder hostname. Verwenden Sie nicht beide.

Die Angabe von localhost für einen rac_hostname-Wert ist nicht zulässig.

port

Gibt den Port für die Verbindungen zur Zieldatenbank an.

Wenn Sie eine Verbindung mit von Oracle verwalteter heterogener Konnektivität mit dem Parameter gateway_params angeben, legen Sie den Port basierend auf dem Wert db_type fest:

  • awsredshift: Verwenden Sie Port 5439
  • azure: Verwenden Sie Port 1433.
  • db2: Verwenden Sie Port 2500 für Db2-Versionen >= 11.5.6
  • db2: Verwenden Sie Port 5000 für Db2-Versionen <= 11.5.5
  • google_analytics: Verwenden Sie Port 443
  • google_bigquery: Verwenden Sie Port 443
  • hive: Verwenden Sie Port 433.
  • mongodb: Verwenden Sie Port 27017.
  • mysql: Verwenden Sie Port 3306
  • mysql_community: Verwenden Sie Port 3306
  • postgres: Verwenden Sie Port 5432
  • salesforce: Verwenden Sie Port 19937.
  • servicenow: Verwenden Sie Port 443
  • snowflake: Verwenden Sie Port 443

service_name

service_name für die Datenbank, zu der ein Link hergestellt werden soll. Suchen Sie den Servicenamen für eine autonome Zieldatenbank mit einer der folgenden Methoden:

  • Suchen Sie in der Datei tnsnames.ora in der wallet.zip-Datei, die Sie von einer autonomen Datenbank für Ihre Verbindung herunterladen.

  • Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf Datenbankverbindung. Jede in der Spalte Verbindungszeichenfolge aufgeführte Verbindungszeichenfolge enthält einen service_name-Eintrag mit der Verbindungszeichenfolge für den entsprechenden Service. Weitere Informationen finden Sie unter Verbindungszeichenfolgen für eine Autonomous Database anzeigen.

  • Fragen Sie die View V$SERVICES ab. Beispiel:

    SELECT name FROM V$SERVICES;

Wenn Sie eine Verbindung mit von Oracle verwalteter heterogener Konnektivität mit dem Parameter gateway_params angeben, ist service_name der Datenbankname der Nicht-Oracle-Datenbank.

ssl_server_cert_dn

Der im Serverzertifikat gefundene DN-Wert.

Von Oracle verwaltete heterogene Konnektivität ist mit einem Wallet vorkonfiguriert, das die meisten allgemeinen vertrauenswürdigen Root- und SSL-Zwischenzertifikate enthält. ssl_server_cert_dn muss NULL sein, wenn Sie den Parameter gateway_params angeben oder den Parameter ssl_server_cert_dn nicht einschließen (der Standardwert ist NULL).

Link zum öffentlichen Endpunkt zu einem Autonomous Database-Ziel ohne Wallet:

So stellen Sie eine Verbindung zu einem Autonomous Database-Ziel auf einem öffentlichen Endpunkt ohne Wallet (TLS) her:

  • Der Parameter directory_name muss NULL lauten.
  • Der Parameter ssl_server_cert_dn muss NULL lauten oder diesen Parameter nicht enthalten (der Standardwert ist NULL).

Privater Endpunktlink ohne Wallet:

So stellen Sie eine Verbindung zu einer Oracle Database auf einem privaten Endpunkt ohne Wallet her:

  • Die Zieldatenbank muss sich auf einem privaten Endpunkt befinden.
  • Der Parameter directory_name muss NULL lauten.
  • Der Parameter ssl_server_cert_dn muss NULL lauten oder diesen Parameter nicht enthalten (Standard ist NULL).
  • Der Parameter private_target muss TRUE sein.
credential_name

Der Name der mit DBMS_CLOUD.CREATE_CREDENTIAL erstellten gespeicherten Zugangsdaten. Dies sind die Zugangsdaten für den Zugriff auf die Zieldatenbank.

directory_name

Das Verzeichnis für die cwallet.sso-Datei. Der Standardwert für diesen Parameter lautet 'data_pump_dir'.

Von Oracle verwaltete heterogene Konnektivität ist mit einem Wallet vorkonfiguriert, das die meisten allgemeinen vertrauenswürdigen Root- und SSL-Zwischenzertifikate enthält. Der Parameter directory_name ist nicht erforderlich, wenn Sie den Parameter gateway_params angeben.

Link zum öffentlichen Endpunkt zu einem Autonomous Database-Ziel ohne Wallet:

So stellen Sie eine Verbindung zu einer Autonomous Database auf einem öffentlichen Endpunkt ohne Wallet (TLS) her:

  • Der Parameter directory_name muss NULL lauten.
  • Der Parameter ssl_server_cert_dn muss NULL lauten oder diesen Parameter nicht enthalten (der Standardwert ist NULL).

Um eine Verbindung zu einer Autonomous Database-Instanz mit TCP herzustellen, muss der Parameter ssl_server_cert_dn NULL lauten oder diesen Parameter nicht enthalten (der Standardwert ist NULL).

Privater Endpunktlink ohne Wallet:

So stellen Sie eine Verbindung zu einer Ziel-Oracle Database auf einem privaten Endpunkt ohne Wallet her:

  • Die Zieldatenbank muss sich auf einem privaten Endpunkt befinden.
  • Der Parameter directory_name muss NULL lauten.
  • Der Parameter ssl_server_cert_dn muss NULL lauten oder diesen Parameter nicht enthalten (der Standardwert ist NULL).
  • Der Parameter private_target muss TRUE sein.
gateway_link

Gibt an, ob der Datenbanklink zu einer anderen Oracle-Datenbank oder zu Oracle Database Gateway erstellt wurde.

Wenn gateway_link auf FALSE gesetzt ist, gibt dies einen Datenbanklink zu einer anderen autonomen Datenbank oder zu einer anderen Oracle-Datenbank an.

Wenn gateway_link auf TRUE gesetzt ist, gibt dies einen Datenbanklink zu einem Nicht-Oracle-System an. Dadurch wird in der Datenbanklinkdefinition ein Verbindungsdeskriptor erstellt, der (HS=OK) angibt.

Wenn gateway_link auf TRUE und gateway_params auf NULL gesetzt ist, gibt dies einen Datenbanklink zu einem vom Kunden verwalteten Oracle-Gateway an.

Der Standardwert für diesen Parameter lautet FALSE.

public_link

Gibt an, ob der Datenbanklink als öffentlicher Datenbanklink erstellt wurde.

Um DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK auszuführen, wenn dieser Parameter auf TRUE gesetzt ist, muss der Benutzer, der die Prozedur aufruft, über die Berechtigung EXECUTE für die mit dem öffentlichen Datenbanklink verknüpften Zugangsdaten und über die Systemberechtigung CREATE PUBLIC DATABASE LINK verfügen. Die Berechtigung EXECUTE für die Zugangsdaten kann entweder vom Benutzer ADMIN oder vom Zugangsdateneigentümer erteilt werden.

Der Standardwert für diesen Parameter lautet FALSE.

private_target

Wenn ein Datenbanklink auf einen Hostnamen zugreift, der in einem VCN-DNS-Server aufgelöst werden muss, geben Sie den Parameter private_target mit dem Wert TRUE an.

Wenn private_target TRUE ist, muss der Parameter hostname ein einzelner Hostname sein (auf einem privaten Endpunkt, mit einer IP-Adresse, einer SCAN-IP oder einem SCAN-Hostnamen wird nicht unterstützt).

Der Standardwert für diesen Parameter lautet FALSE.

gateway_params

db_type Dieser Parameter gibt den Zieldatenbanktyp für von Oracle verwaltete heterogene Konnektivität an, um eine Verbindung zu Nicht-Oracle-Datenbanken herzustellen. Der db_type-Wert ist einer der folgenden Werte:

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Siehe Verwendungshinweise für zusätzliche unterstützte gateway_params, wenn db_type google_bigquery ist.

  • hive

    * Siehe Verwendungshinweise für zusätzliche unterstützte gateway_params, wenn db_type hive ist.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Siehe Verwendungshinweise für zusätzliche unterstützte gateway_params, wenn db_type salesforce ist.

  • servicenow

    * Siehe Verwendungshinweise für zusätzliche unterstützte gateway_params, wenn db_type servicenow ist.

  • snowflake

    * Siehe Verwendungshinweise für zusätzliche unterstützte gateway_params, wenn db_type snowflake ist.

  • NULL

    Wenn gateway_params NULL und gateway_link auf TRUE gesetzt ist, gibt dies einen Datenbanklink zu einem vom Kunden verwalteten Oracle-Gateway an.

Geben Sie den Parameter mit dem Formular json_object an.

Beispiel:

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

Wenn gateway_params NULL und private_target TRUE ist und directory_name NULL ist, wird ein TCP-basierter Datenbanklink erstellt.

Wenn gateway_params NULL und private_target TRUE ist und directory_name NULL ist, wird ein TCPS-basierter Datenbanklink erstellt.

Verwendungshinweise

  • Wenn Sie den Parameter gateway_params angeben, werden für einige db_type-Werte zusätzliche gateway_params-Parameter unterstützt:

    db_type Zusätzliche gateway_params-Werte
    google_analytics

    Wenn db_type google_analytics ist, müssen die angegebenen Zugangsdaten Google OAuth-Zugangsdaten sein (gcp_oauth2) Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL).

    google_bigquery

    Wenn db_type google_bigquery ist, müssen die angegebenen Zugangsdaten Google OAuth-Zugangsdaten sein (gcp_oauth2) Weitere Informationen finden Sie unter Prozedur CREATE_CREDENTIAL).

    Wenn db_type google_bigquery ist, ist der Parameter project gültig. Dieser Parameter gibt den Projektnamen für google_bigquery an und ist erforderlich.

    Der Tabellenname, den Sie bei der Verwendung von SELECT mit Google BigQuery angeben, muss in Anführungszeichen stehen. Beispiel:

    SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK
    hive

    Wenn db_type hive ist, ist der Parameter http_path gültig. Dieser Parameter gibt den Wert HttpPath an, falls erforderlich, um eine Verbindung zur Hive-Instanz herzustellen.

    salesforce

    Wenn db_type salesforce ist, ist der Parameter security_token gültig. Ein Sicherheitstoken ist ein alphanumerischer Code, bei dem die Groß-/Kleinschreibung beachtet wird. Für den Zugriff auf Salesforce ist die Angabe eines security_token-Wertes erforderlich. Beispiel:

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

    Weitere Informationen finden Sie unter Sicherheitstoken zurücksetzen.

    servicenow

    Um eine Verbindung zu ServiceNow herzustellen und Daten abzurufen, müssen Sie die Gatewayparameter directory_name und file_name angeben. Diese Parameter geben eine Modelldatei (REST-Konfigurationsdatei) an, mit der die JSON-Antwort dem relationalen Modell zugeordnet wird. Die Modelldatei gibt die Endpunkte, die Tabellenzuordnung und den HTTP-Antwortcode für die Verarbeitung der JSON-Antwort an. Weitere Informationen finden Sie unter Syntax für Modelldateien und Beispielmodelldatei.

    Wenn Sie den Parameter gateway_params mit db_type servicenow verwenden, gibt es zwei unterstützte Optionen:

    • Basisauthentifizierung: Sie müssen den Parameter gateway_params db_type mit dem Wert 'servicenow' angeben und die Parameter directory_name und file_name sowie Zugangsdaten für den Benutzernamen/Kennworttyp angeben.

    • OAuth 2.0-Authentifizierung: Sie müssen den Parameter gateway_params db_type mit dem Wert 'servicenow', die Parameter directory_name, file_name und token_uri zusammen mit den Zugangsdaten des Typs OAuth angeben.

    Der Parameter directory_name gibt das Verzeichnis mit der REST-Konfigurationsdatei ServiceNow an. Sie können dieses Verzeichnis wie folgt erstellen:

    create or replace directory servicenow_dir as 'SERVICENOW_DIR';

    Rufen Sie die REST-Konfigurationsdatei ServiceNow ab, und laden Sie sie in das angegebene Verzeichnis herunter. Beispiel:

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

    Setzen Sie den Wert file_name auf den Namen der heruntergeladenen REST-Konfigurationsdatei, "servicenow.rest".

    Anschließend können Sie die REST-Konfigurationsdatei ServiceNow mit der Basisauthentifizierung oder OAuth2.0 verwenden.

    snowflake

    Wenn db_type SNOWFLAKE ist, sind die optionalen Parameter role, schema und warehouse gültig. Diese Werte geben ein anderes Schema, eine andere Rolle oder einen anderen Warehouse-Wert als den Standardwert an. Beispiel:

    gateway_params => JSON_OBJECT(
         'db_type' value 'snowflake',
         'role' value 'ADMIN',
         'schema' value 'PUBLIC',
         'warehouse' value 'TEST' )
  • Wenn Sie den Parameter private_target verwenden, beachten Sie, dass Datenbanklinks von einer Autonomous Database zu einem Datenbankservice, der sich auf einem privaten Endpunkt befindet, nur in kommerziellen Regionen und US Government-Regionen unterstützt werden.

    Dieses Feature ist standardmäßig in allen kommerziellen Regionen aktiviert.

    Dieses Feature ist in US Government-Regionen für neu bereitgestellte Datenbanken standardmäßig aktiviert.

    Wenn Sie für vorhandene US Government-Datenbanken auf einem privaten Endpunkt Datenbanklinks von einer autonomen Datenbank zu einem Ziel in einer US Government-Region erstellen möchten, stellen Sie eine Serviceanfrage bei Oracle Cloud Support, und fordern Sie die Aktivierung des privaten Endpunkts im Datenbanklinkfeature für US Government-Regionen an.

    US Government-Regionen umfassen:

  • Bei der Verbindung zu einer Nicht-Oracle-Datenbank werden Datenbanklinks nur unterstützt, wenn über eine öffentliche IP oder einen öffentlichen Hostnamen auf die Zieldatenbank zugegriffen werden kann.
  • Um DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK mit einem anderen Benutzer als ADMIN auszuführen, müssen Sie diesem Benutzer EXECUTE- und CREATE DATABASE LINK-Berechtigungen erteilen.Beispiel: Führen Sie den folgenden Befehl als ADMIN aus, um atpc_user Berechtigungen zu erteilen:

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

    Wenn Sie außerdem einen Datenbanklink in einem anderen Schema als dem ADMIN-Schema erstellen, z.B. in einem Schema mit dem Namen atpc_user, muss das Schema atpc_user Eigentümer der Zugangsdaten sein, die Sie mit DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK verwenden.

  • Pro Verzeichnis, das mit dem Parameter directory_name angegeben wird, ist nur eine Wallet-Datei gültig. Sie können jeweils nur eine cwallet.sso-Datei in das Verzeichnis hochladen, das Sie für Wallet-Dateien ausgewählt haben. Das bedeutet, dass Sie mit einer cwallet.sso-Datei in einem Verzeichnis nur Datenbanklinks zu den Datenbanken erstellen können, für die das Wallet in diesem Verzeichnis gültig ist. Um mehrere cwallet.sso-Dateien mit Datenbanklinks zu verwenden, müssen Sie zusätzliche Verzeichnisse erstellen und jede cwallet.sso-Datei in einem anderen Verzeichnis ablegen.

    Informationen zum Erstellen von Verzeichnissen finden Sie unter Verzeichnis in Autonomous Database erstellen.

  • Um einen Datenbanklink zu einer autonomen Datenbank zu erstellen, setzen Sie GLOBAL_NAMES in der Quelldatenbank (Nicht-Autonomous Database) auf FALSE.

    SQL> ALTER SYSTEM SET GLOBAL_NAMES = FALSE;
     
    System altered.
    
    SQL> SHOW PARAMETER GLOBAL_NAMES
    NAME                     TYPE        VALUE
    ----------------------   ----------- -----------
    global_names             boolean     FALSE
    
  • Wenn der private_target-Parameter TRUE lautet, gibt der Parameter hostname einen privaten Host innerhalb des VCN an.

Beispiele

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

Der Tabellenname, den Sie bei der Verwendung von SELECT mit Google BigQuery oder Google Analytics angeben, muss in Anführungszeichen stehen. Beispiel:

SELECT * FROM "sales"@GOOGLE_BIGQUERY_LINK

Verwenden Sie den Parameter rac_hostnames mit einer Oracle RAC-Zieldatenbank auf einem privaten Endpunkt.

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-Prozedur

Mit diesem Verfahren wird die Zuordnung eines Dateisystems zur Datenbank aufgehoben.

Die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM trennt ein Dateisystem von der Datenbank. Darüber hinaus entfernt die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM auch die Informationen zum Dateisystem aus der Ansicht DBA_CLOUD_FILE_SYSTEMS.

Syntax

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

Parameter

Parameter Beschreibung

file_system_name

Der Name des Dateisystems.

Dieser Parameter ist erforderlich.

Beispiel:

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

Verwendungshinweise

  • Um diese Prozedur auszuführen, müssen Sie als ADMIN-Benutzer angemeldet sein oder die Berechtigung EXECUTE für DBMS_CLOUD_ADMIN besitzen.

  • Sie benötigen die Berechtigung WRITE für das Verzeichnisobjekt in der Datenbank, um ein Dateisystem mit der Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM von einem Verzeichnis zu trennen.

  • Die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM kann einen privaten File Storage-Service nur in Datenbanken trennen, in denen private Endpunkte aktiviert sind.

    Weitere Informationen finden Sie unter OCI File Storage Service und Entwicklungssystem für den Zugriff auf die Datenbank konfigurieren.

  • Die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM sucht den Hostnamen des Netzwerkdateisystems im virtuellen Cloud-Netzwerk (VCN) des Kunden. Der Fehler "ORA-20000: Mounting NFS fails" wird zurückgegeben, wenn der im Speicherort angegebene Hostname nicht gefunden werden kann.

Prozedur DISABLE_EXTERNAL_AUTHENTICATION

Deaktiviert die Benutzerauthentifizierung mit externen Authentifizierungsschemas für die Datenbank.

Syntax

DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;

Exceptions

Ausnahme Fehler Beschreibung
invalid_ext_auth ORA-20004

Eine ausführliche Erläuterung finden Sie in der zugehörigen Meldung.

Beispiel

BEGIN 
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/

PL/SQL procedure successfully completed.

Prozedur DROP_DATABASE_LINK

Diese Prozedur löscht einen Datenbanklink.

Syntax

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

Parameter

Parameter Beschreibung

db_link_name

Name des zu löschenden Datenbanklinks.

public_link

Um DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK auszuführen, wenn public_link auf TRUE gesetzt ist, benötigen Sie die Systemberechtigung DROP PUBLIC DATABASE LINK.

Der Standardwert für diesen Parameter lautet FALSE.

Beispiel

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

Verwendungshinweise

Wenn Sie mit der Verwendung eines Datenbanklinks fertig sind und DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK ausführen, entfernen Sie alle gespeicherten Wallet-Dateien, um die Sicherheit der Oracle-Datenbank zu gewährleisten. Beispiel:

  • Entfernen Sie die Wallet-Datei im Objektspeicher.

  • Verwenden Sie DBMS_CLOUD.DELETE_FILE, um die Wallet-Datei aus dem Verzeichnis data_pump_dir oder aus dem benutzerdefinierten Verzeichnis zu entfernen, in dem die Wallet-Datei hochgeladen wurde.

Prozedur ENABLE_EXTERNAL_AUTHENTICATION

Ermöglichen Sie Benutzern die Anmeldung bei der Datenbank mit externen Authentifizierungsschemas.

Syntax

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

Parameter

Parameter Beschreibung

type

Gibt den externen Authentifizierungstyp an. Gültige Werte: oder .

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

force

(Optional) Setzen Sie ein aktuell aktiviertes externes Authentifizierungsschema außer Kraft. Gültige Werte sind TRUE oder FALSE.

Der Standardwert ist FALSE.

params

Eine JSON-Zeichenfolge, die zusätzliche Parameter für die externe Authentifizierung bereitstellt.

CMU-Parameter:

  • location_uri: Gibt die Cloud-Speicher-URI für den Bucket an, in dem die für CMU erforderlichen Dateien gespeichert werden.

    Wenn Sie location_uri angeben, wird ein Verzeichnisobjekt mit dem festen Namen CMU_WALLET_DIR in der Datenbank unter dem Pfad 'cmu_wallet' erstellt, um die CMU-Konfigurationsdateien zu speichern. In diesem Fall müssen Sie den Parameter directory_name nicht angeben.

  • credential_name: Gibt die Zugangsdaten an, mit denen die CMU-Konfigurationsdateien aus dem Objektspeicher in das Verzeichnisobjekt heruntergeladen werden.

    Der Standardwert ist NULL. Damit können Sie eine öffentliche, vorab authentifizierte oder vorab signierte URL für den Objektspeicher-Bucket oder Unterordner angeben.

  • directory_name: Gibt den Namen des Verzeichnisses an, in dem die für CMU erforderlichen Dateien gespeichert werden. Wenn directory_name angegeben wird, müssen Sie die CMU-Konfigurationsdateien dsi.ora und cwallet.sso in dieses Verzeichnisobjekt kopieren.

KERBEROS-Parameter:

  • location_uri: Gibt die Cloud-Speicher-URI für den Bucket an, in dem die für Kerberos erforderlichen Dateien gespeichert sind.

    Wenn Sie location_uri angeben, wird ein Verzeichnisobjekt mit dem festen Namen KERBEROS_DIR in der Datenbank erstellt, um die Kerberos-Konfigurationsdateien zu speichern. In diesem Fall müssen Sie den Parameter directory_name nicht angeben.

  • credential_name: Gibt die Zugangsdaten an, mit denen Kerberos-Konfigurationsdateien vom Objektspeicherort in das Verzeichnisobjekt heruntergeladen werden.

    Der Standardwert ist NULL. Damit können Sie eine öffentliche, vorab authentifizierte oder vorab signierte URL für den Objektspeicher-Bucket oder Unterordner angeben.

  • directory_name: Gibt den Namen des Verzeichnisses an, in dem die für Kerberos erforderlichen Dateien gespeichert werden. Wenn directory_name angegeben wird, müssen Sie die Kerberos-Konfigurationsdateien in dieses Verzeichnisobjekt kopieren.
  • kerberos_service_name: Gibt einen Namen an, der als Kerberos-Servicename verwendet werden soll. Dieser Parameter ist optional.

    Standardwert: Wenn dieser Wert nicht angegeben wird, wird der Wert kerberos_service_name auf die GUID der Autonomous Database-Instanz gesetzt.

AZURE_AD-Parameter:

  • tenant_id: Mandanten-ID des Azure-Accounts. Die Mandanten-ID gibt die Azure AD-Anwendungsregistrierung der Autonomous Database-Instanz an.
  • application_id: In Azure AD erstellte Azure-Anwendungs-ID zum Zuweisen von Rollen-/Schemazuordnungen für die externe Authentifizierung in der Autonomous Database-Instanz.
  • application_id_uri: Eindeutige URI, die der Azure-Anwendung zugewiesen ist.

    Dies ist die ID für die Autonomous Database-Instanz. Der Name muss domainqualifiziert sein (dadurch wird der mandantenübergreifende Ressourcenzugriff unterstützt).

    Die maximale Länge für diesen Parameter beträgt 256 Zeichen.

Exceptions

Ausnahme Fehler Beschreibung
invalid_ext_auth ORA-20004

Eine ausführliche Erläuterung finden Sie in der zugehörigen Meldung.

Verwendungshinweise

  • Wenn der type OCI_IAM lautet und der Resource Principal in der Autonomous Database-Instanz nicht aktiviert ist, aktiviert diese Routine den Resource Principal mit DBMS_CLOUD_ADMIN.ENABLE_RESOURCE_PRINCIPAL.

  • Diese Prozedur setzt die Systemparameter IDENTITY_PROVIDER_TYPE und IDENTITY_PROVIDER_CONFIG auf die erforderlichen Benutzer für den Zugriff auf die Instanz mit Oracle Cloud Infrastructure Identity and Access Management-Authentifizierung und -Autorisierung.

Beispiele

OCI_IAM-Authentifizierung aktivieren

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

PL/SQL procedure successfully completed.

CMU-Authentifizierung für Microsoft Active Directory aktivieren

Sie übergeben den Namen eines Verzeichnisses, das die CMU-Konfigurationsdateien enthält, über das JSON-Argument 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.

Sie übergeben eine Speicherort-URI, die auf einen Object Storage-Speicherort mit CMU-Konfigurationsdateien verweist, über das JSON-Argument 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.

Azure AD-Authentifizierung aktivieren

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.

Kerberos-Authentifizierung aktivieren

Sie übergeben den Namen eines Verzeichnisses, das Kerberos-Konfigurationsdateien enthält, über das JSON-Argument 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.

Sie übergeben eine Standort-URI, die auf einen Object Storage-Speicherort verweist, der Kerberos-Konfigurationsdateien enthält, über das JSON-Argument 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;
/

Sie übergeben einen Servicenamen mit dem kerberos_service_name im JSON-Argument 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;
/

Nachdem Kerberos auf der Autonomous Database-Instanz aktiviert wurde, zeigen Sie den Kerberos-Servicenamen mit der folgenden Abfrage an:

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

DBMS_CLOUD_ADMIN-Ausnahmen

In der folgenden Tabelle werden Ausnahmen für DBMS_CLOUD_ADMIN beschrieben.

Ausnahme Code Beschreibung
invalid_service 20.001 Ein ungültiger Service wurde angegeben.
service_not_exist 20.002 Ein angegebener Service ist nicht vorhanden.
default_service 20.003 Ein angegebener Service kann nicht geändert werden.
invalid_char_set 20.029 Fehlende Vorbedingung oder ungültiger (nationaler) Zeichensatz.
invalid_enc_key_attr 20.030 Fehlendes oder ungültiges Argument für die Schlüsselverwaltung.
Already Using Oracle Managed Key 0

Die Datenbank verwendet bereits einen von Oracle verwalteten Schlüssel. Sie versuchen, die Prozedur aufzurufen, verwenden jedoch bereits einen von Oracle verwalteten Schlüssel.

Argument Provided for the procedure ORA-0000

Ein Argument wurde für die Prozedur angegeben. Erwartete Fehlermeldung: Für diese Prozedur sind keine Argumente erforderlich.