DBMS_CLOUD_ADMIN-Package

In diesem Abschnitt werden die DBMS_CLOUD_ADMIN-Unterprogramme behandelt, die mit der autonomen KI-Datenbank bereitgestellt werden.

Unterprogramm Beschreibung
ATTACH_FILE_SYSTEM-Prozedur Dieses Verfahren hängt ein Dateisystem in einem Verzeichnis Ihrer Datenbank an.
Prozedur CREATE_DATABASE_LINK Mit dieser Prozedur wird ein Datenbanklink zu einer Zieldatenbank erstellt. Es gibt Optionen zum Erstellen eines Datenbanklinks zu einer anderen autonomen KI-Datenbankinstanz, zu einer Oracle Database, die keine autonome KI-Datenbank ist, oder zu einer Nicht-Oracle Database, die eine von Oracle verwaltete heterogene Konnektivität verwendet.
DETACH_FILE_SYSTEM-Prozedur Bei 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 Instanz der autonomen KI-Datenbank.
DROP_DATABASE_LINK - Prozedur Bei diesem Verfahren wird ein Datenbanklink gelöscht.
Prozedur ENABLE_EXTERNAL_AUTHENTICATION Mit dieser Prozedur kann sich ein Benutzer mit dem angegebenen externen Authentifizierungsschema bei der autonomen KI-Datenbank anmelden.

ATTACH_FILE_SYSTEM-Prozedur

Mit diesem Verfahren wird ein Dateisystem in der Datenbank angehängt.

Die Prozedur DBMS_CLOUD_ADMIN.ATTACH_FILE_SYSTEM hängt ein Dateisystem in Ihrer 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

Gibt den Namen des Dateisystems an.

Dieser Parameter ist obligatorisch.

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 in folgendem Format: FQDN:file_path.

Hinweis: Sie können einen FQDN oder eine IP-Adresse verwenden.

Beispiel:

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

    Legen Sie für Oracle Cloud Infrastructure File Storage den FQDN in "Erweiterte Optionen anzeigen" fest, wenn Sie ein Dateisystem erstellen. Weitere Informationen finden Sie unter Dateisysteme erstellen.

  • Dateipfad: /results

Dieser Parameter ist obligatorisch.

directory_name

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

Dieser Parameter ist obligatorisch.

description (Optional) Liefert eine Beschreibung der Aufgabe.
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 wird (NFSv3 oder NFSv4). Gültige Werte: 3, 4

Standardwert: 3

Beispiele

Beispiel: Anhängen an ein NFSv3-Dateisystem:

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

Beispiel: Anhängen an ein NFSv4-Dateisystem:

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

Prozedur CREATE_DATABASE_LINK

Mit dieser Prozedur wird ein Datenbanklink zu einer Zieldatenbank im Schema erstellt, das die API aufruft.

Die überladenen Formulare unterstützen Folgendes:

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 Der Name des zu erstellenden Datenbank-Links.
hostname

Der Hostname für die Zieldatenbank.

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

Wenn Sie eine Verbindung mit einer von Oracle verwalteten heterogenen Konnektivität angeben, indem Sie den Parameter 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 ist, ist hostname die Snowflake-Account-ID. Informationen zum Suchen Ihrer Snowflake-Account-ID finden Sie unter Account-ID-Formate nach Cloud-Plattform und -Region.

Verwenden Sie diesen Parameter oder rac_hostnames, nicht beides.

In der Eingabe DBMS_CLOUD_ADMIN.CREATE_DATABASE_LINK muss der Scanname der dedizierten autonomen KI-Zieldatenbank 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 mindestens einen 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 im Parameter rac_hostnames eine Liste mit Hostnamen angeben, verwendet CREATE_DATABASE_LINK alle angegebenen Hostnamen als Adressen in der Verbindungszeichenfolge. Wenn einer der angegebenen Hosts in der Oracle RAC-Zieldatenbank nicht verfügbar ist, versucht Autonomous Database automatisch, eine Verbindung mit einem anderen Hostnamen aus der Liste herzustellen.

Verwenden Sie diesen Parameter oder hostname, nicht beides.

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 einer von Oracle verwalteten heterogenen Konnektivität mit dem Parameter gateway_params angeben, legen Sie den Port basierend auf dem Wert db_type fest:

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

Die service_name für die zu verknüpfende Datenbank. Suchen Sie den Servicenamen für eine autonome Zieldatenbank mit einer der folgenden Methoden:

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

  • Klicken Sie in der Oracle Cloud Infrastructure-Konsole auf "Datenbankverbindung". Jede Verbindungszeichenfolge, die in der Spalte "Verbindungszeichenfolge" aufgeführt wird, enthält einen service_name-Eintrag mit der Verbindungszeichenfolge für den entsprechenden Service. Weitere Informationen finden Sie unter Verbindungszeichenfolgen für eine autonome KI-Datenbank anzeigen.

  • Abfrageansicht V$SERVICES. Beispiel:

    SELECT name FROM V$SERVICES;

Wenn Sie mit dem Parameter gateway_params eine Verbindung zu einer von Oracle verwalteten heterogenen Konnektivität angeben, ist service_name der Datenbankname der Nicht-Oracle-Datenbank.

ssl_server_cert_dn

Der im Serverzertifikat gefundene DN-Wert.

Die von Oracle verwaltete heterogene Konnektivität ist mit einem Wallet vorkonfiguriert, das die meisten gängigen vertrauenswürdigen Root- und Zwischen-SSL-Zertifikate 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).

Öffentlicher Endpunktlink zu einem autonomen KI-Datenbankziel ohne Wallet:

So stellen Sie eine Verbindung zu einem autonomen KI-Datenbankziel auf einem öffentlichen Endpunkt ohne Wallet (TLS) her:

  • Der Parameter directory_name muss NULL sein.
  • Der Parameter ssl_server_cert_dn muss NULL sein oder diesen Parameter nicht einschließen (der Standardwert ist NULL).

Privater Endpunktlink ohne Wallet:

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

  • Die Zieldatenbank muss sich auf einem privaten Endpunkt befinden.
  • Der Parameter directory_name muss NULL sein.
  • Der Parameter ssl_server_cert_dn muss NULL sein oder diesen Parameter nicht einschließen (der Standardwert ist NULL).
  • Der Parameter private_target muss TRUE sein.
credential_name Der Name der gespeicherten Zugangsdaten, die mit DBMS_CLOUD.CREATE_CREDENTIAL erstellt wurden. Dies sind die Zugangsdaten für den Zugriff auf die Zieldatenbank.
directory_name

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

Die von Oracle verwaltete heterogene Konnektivität ist mit einem Wallet vorkonfiguriert, das die meisten gängigen vertrauenswürdigen Root- und Zwischen-SSL-Zertifikate enthält. Der Parameter directory_name ist nicht erforderlich, wenn Sie den Parameter gateway_params angeben.

Öffentlicher Endpunktlink zu einem autonomen KI-Datenbankziel ohne Wallet:

So stellen Sie eine Verbindung zu einer autonomen KI-Datenbank auf einem öffentlichen Endpunkt ohne Wallet (TLS) her:

  • Der Parameter directory_name muss NULL sein.
  • Der Parameter ssl_server_cert_dn muss NULL sein oder diesen Parameter nicht einschließen (der Standardwert ist NULL).

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

Privater Endpunktlink ohne Wallet:

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

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

Gibt an, ob der Datenbanklink zu einer anderen Oracle Database oder zu einem Oracle Database Gateway erstellt wird.

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

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

Wenn gateway_link auf TRUE gesetzt ist 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 ist FALSE.

public_link

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

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

Der Standardwert für diesen Parameter ist 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, der eine IP-Adresse, eine SCAN-IP oder einen SCAN-Hostnamen verwendet, wird nicht unterstützt).

Der Standardwert für diesen Parameter ist FALSE.

gateway_params

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

  • awsredshift
  • azure
  • db2
  • google_analytics
  • google_bigquery

    * Weitere unterstützte gateway_params finden Sie in den Verwendungshinweisen, wenn db_type google_bigquery ist.

  • hive

    * Weitere unterstützte gateway_params finden Sie in den Verwendungshinweisen, wenn db_type hive ist.

  • mongodb
  • mysql
  • postgres
  • salesforce

    * Weitere unterstützte gateway_params finden Sie in den Verwendungshinweisen, wenn db_type salesforce ist.

  • servicenow

    * Weitere unterstützte gateway_params finden Sie in den Verwendungshinweisen, wenn db_type servicenow ist.

  • snowflake

    * Weitere unterstützte gateway_params finden Sie in den Verwendungshinweisen, wenn db_type snowflake ist.

  • NULL

    Wenn gateway_params NULL ist 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

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_i*',
          '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 angeben, wenn Sie SELECT mit Google BigQuery oder Google Analytics verwenden, 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

Bei diesem Verfahren wird ein Dateisystem von der Datenbank getrennt.

Die Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM trennt ein Dateisystem von der Datenbank. Außerdem werden mit der Prozedur DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM die Informationen zum Dateisystem aus der Ansicht DBA_CLOUD_FILE_SYSTEMS entfernt.

Syntax

DBMS_CLOUD_ADMIN.DETACH_FILE_SYSTEM(
    file_system_name         IN VARCHAR2
);

Parameter

Parameter Beschreibung
file_system_name

Gibt den Namen des Dateisystems an.

Dieser Parameter ist obligatorisch.

Beispiel

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

Verwendungshinweise

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 detaillierte Erläuterung finden Sie in der beigefügten Meldung.

Beispiel

BEGIN
   DBMS_CLOUD_ADMIN.DISABLE_EXTERNAL_AUTHENTICATION;
END;
/
PL/SQL procedure successfully completed.

DROP_DATABASE_LINK - Prozedur

Bei diesem Verfahren wird ein Datenbanklink gelöscht.

Syntax

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

Parameter

Parameter Beschreibung
db_link_name Der Name des zu löschenden Datenbank-Links.
public_link

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

Der Standardwert für diesen Parameter ist FALSE.

Beispiel

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

Verwendungshinweise

Nachdem Sie mit einem Datenbanklink fertig sind und DBMS_CLOUD_ADMIN.DROP_DATABASE_LINK ausgeführt haben, um die Sicherheit der Oracle-Datenbank zu gewährleisten, entfernen Sie alle gespeicherten Wallet-Dateien. Beispiel:

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 sind.

    Wenn Sie location_uri angeben, wird in der Datenbank ein festes Namensverzeichnisobjekt CMU_WALLET_DIR 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, die zum Herunterladen der CMU-Konfigurationsdateien aus dem Objektspeicher in das Verzeichnisobjekt verwendet werden.

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

  • directory_name: Gibt den Verzeichnisnamen an, in dem Konfigurationsdateien gespeichert werden, die für CMU erforderlich sind. 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 festes Namensverzeichnisobjekt 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, die zum Herunterladen von Kerberos-Konfigurationsdateien aus dem Objektspeicherort in das Verzeichnisobjekt verwendet 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 Verzeichnisnamen 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 autonomen AI-Datenbankinstanz gesetzt.

AZURE_AD-Parameter:

  • tenant_id: Mandanten-ID des Azure-Accounts. Mandanten-ID gibt die Azure AD-Anwendungsregistrierung der autonomen AI-Datenbankinstanz an.
  • application_id: Azure-Anwendungs-ID, die in Azure AD erstellt wurde, um Rollen-/Schemazuordnungen für die externe Authentifizierung in der Instanz der autonomen KI-Datenbank zuzuweisen.
  • application_id_uri: Eindeutige URI, die der Azure-Anwendung zugewiesen ist.

    Dies ist die ID für die Instanz der autonomen KI-Datenbank. Der Name muss domainqualifiziert sein (unterstützt mandantenübergreifenden Ressourcenzugriff).

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

Exceptions

Ausnahme Fehler Beschreibung
invalid_ext_auth ORA-20004 Eine detaillierte Erläuterung finden Sie in der beigefügten Meldung.

Verwendungshinweise

Beispiele

Beispiel: OCI_IAM-Authentifizierung aktivieren

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

Beispiel: CMU-Authentifizierung für Microsoft Active Directory aktivieren

Sie übergeben einen Verzeichnisnamen, der 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;
/

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

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

Beispiel: Kerberos-Authentifizierung aktivieren

Sie übergeben einen Verzeichnisnamen, der 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;
/

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 in Ihrer autonomen KI-Datenbankinstanz 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 Es wurde ein ungültiger Service 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 Schlüsselverwaltung.
Already Using Oracle Managed Key 0 Die Datenbank verwendet bereits einen von Oracle verwalteten Schlüssel. Sie versuchen, die Prozedur aufzurufen, während Sie bereits einen von Oracle verwalteten Schlüssel verwenden.
Argument Provided for the procedure ORA-0000 Für die Prozedur wird ein Argument angegeben. Erwartete Fehlermeldung: Für diese Prozedur sind keine Argumente erforderlich.

Verwandte Inhalte