Cloud-Links für schreibgeschützten Datenzugriff auf Autonomous Database verwenden

Cloud-Links bieten eine cloudbasierte Methode für den Remotezugriff auf schreibgeschützte Daten in einer Autonomous Database-Instanz.

Cloudlinks in Autonomous Database

Mit Cloud-Links registriert ein Dateneigentümer eine Tabelle oder Ansicht für den Remotezugriff für eine ausgewählte Zielgruppe, wie vom Dateneigentümer definiert, und die Daten sind dann für Personen zugänglich, für die bei der Registrierung der Zugriff erteilt wurde. Für die Einrichtung von Cloud-Links sind keine weiteren Aktionen erforderlich, und wer Ihre Daten sehen und darauf zugreifen soll, kann die Daten erkennen und damit arbeiten.

Die Cloud Links-Implementierung nutzt Oracle Cloud Infrastructure-Zugriffsmechanismen, um Daten innerhalb eines bestimmten Geltungsbereichs zugänglich zu machen. Der Geltungsbereich gibt an, wer remote auf die Daten zugreifen kann. Der Geltungsbereich kann auf verschiedene Ebenen festgelegt werden, z.B. auf die Region, in der sich die Datenbank befindet, auf einzelne Mandanten oder auf Compartments. Darüber hinaus können Sie angeben, dass die Autorisierung für den Zugriff auf ein Dataset auf mindestens eine Autonomous Database-Instanz beschränkt ist.

Wenn Sie einen oder mehrere regionsübergreifende aktualisierbare Klone aus der Autonomous Database-Quellinstanz (des Dataset-Eigentümers) erstellen, können Sie mit Cloud-Links Daten über mehrere Regionen hinweg freigeben.

Cloud-Links vereinfachen die gemeinsame Nutzung von Tabellen oder Views über Autonomous Database-Instanzen hinweg im Vergleich zu herkömmlichen Mechanismen zur Datenbankverknüpfung erheblich. Mit Cloud-Links können Sie Daten ermitteln, ohne dass ein komplexes Datenbanklinksetup erforderlich ist. Autonomous Database bietet transparenten Zugriff mit SQL und implementiert die Durchsetzung von Berechtigungen mit dem Geltungsbereich "Cloud-Links" und durch Erteilen von Autorisierungen für einzelne Autonomous Database-Instanzen.

Cloud-Links führen die Konzepte regionaler Namespaces und Namen für Daten ein, auf die remote zugegriffen werden kann. Dies ähnelt vorhandenen Oracle-Tabellen, in denen eine Tabelle vorhanden ist, z.B. "EMP", die sich in einem Namespace (Schema) befindet, z.B. "LWARD". Es kann nur eine LWARD.EMP in der Datenbank vorhanden sein. Cloud-Links stellen einen ähnlichen Namespace und Namen auf regionaler Ebene bereit, der nicht an eine einzelne Datenbank gebunden ist, aber für viele Autonomous Database-Instanzen gilt, wie mit dem Geltungsbereich und optional mit Datenbankautorisierung angegeben.

Beispiel: Sie können ein Dataset unter dem Namespace FOREST registrieren. Aus Sicherheitsgründen oder zur Vereinfachung der Benennung können Sie einen Namespace und einen anderen Namen als den ursprünglichen Schema- und Objektnamen angeben. In diesem Beispiel ist TREE_DATA der sichtbare Name des registrierten Datasets, und dieser Name muss nicht der Name der Quelltabelle sein. Neben dem Namespace und dem Namen gibt das Schlüsselwort cloud$link der Datenbank an, dass die Quelle als Cloud-Link aufgelöst werden muss.

Um auf ein registriertes Dataset zuzugreifen, fügen Sie den Namespace, den Namen und das Schlüsselwort cloud$link in die FROM-Klausel einer SELECT-Anweisung ein:

SELECT county, species, height FROM FOREST.TREE_DATA@cloud$link;

Optional können Sie angeben, dass der Zugriff auf ein Dataset von einer oder mehreren Datenbanken auf einen aktualisierbaren Klon ausgelagert wird. Wenn ein Consumer-Autonomous Database in der Auslagerungsliste eines Datasets aufgeführt wird, wird der Zugriff auf das Dataset an den aktualisierbaren Klon weitergeleitet.

Hinweis

Cloudlinks bieten schreibgeschützten Zugriff auf Remoteobjekte in einer Autonomous Database-Instanz. Wenn Sie Datenbanklinks mit anderen Oracle-Datenbanken oder mit Nicht-Oracle-Datenbanken verwenden möchten oder wenn Sie Ihre Remote-Daten mit DML-Vorgängen verwenden möchten, müssen Sie Datenbanklinks verwenden. Weitere Informationen finden Sie unter Datenbanklinks mit Autonomous Database verwenden.
Cloud-Links unterstützen private und öffentliche Synonyme. Beispiel: Sie können ein Synonym für FOREST.TREE_DATA@cloud$link definieren und verwenden:
CREATE SYNONYM S1 for FOREST.TREE_DATA@cloud$link;
SELECT county, species, height FROM S1;

CREATE PUBLIC SYNONYM S2 for FOREST.TREE_DATA@cloud$link;
SELECT * FROM S2;

Weitere Informationen zu Synonymen finden Sie unter Überblick über Synonyme.

Bedingungen für Cloud-Verknüpfungen

Bei der Arbeit mit Cloud-Links sind mehrere Konzepte und Begriffe zu verwenden:

  • Registriertes Dataset (Dataset): Gibt eine Tabelle oder View an, die für den Remotezugriff in einer Autonomous Database aktiviert wurde. Ein registriertes Dataset gibt auch an, wer auf das Dataset zugreifen darf (sein Geltungsbereich). Die Dataset-Registrierung definiert einen Namespace und einen Namen für die Verwendung mit Cloud-Links. Nach der Dataset-Registrierung geben diese Werte zusammen den vollqualifizierten Namen (FQN) für den Remotezugriff an und ermöglichen es Cloud-Links, die Barrierefreiheit für das Dataset zu verwalten.

  • Dataset-Eigentümer: Geben Sie einen Dataset-Eigentümer an, um einen Ansprechpartner für Fragen zu einem Dataset bereitzustellen.

  • Geltungsbereich: Gibt an, wer und von wo aus ein Benutzer auf ein registriertes Dataset zugreifen darf. Weitere Details zum Geltungsbereich finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

  • OCID (Oracle Cloud-ID): Gibt einen bestimmten Mandanten, ein Compartment oder eine Datenbank an. Der Geltungsbereich für ein registriertes Dataset kann in Form von OCIDs ausgedrückt werden. Weitere Informationen finden Sie unter Ressourcen-IDs.

  • Datenregistrierung: Bei der Datenregistrierung stellt ein Benutzer eine Tabelle oder Ansicht für den Remotezugriff zur Verfügung, vorbehaltlich der Zugriffsbeschränkungen, die durch den Geltungsbereich festgelegt werden, und unterliegt optional einem zusätzlichen Autorisierungsschritt. Sie können den Remotezugriff mit Cloud-Links in einer Tabelle oder View zulassen, die in der Datenbank oder auf im Objektspeicher gespeicherten Daten gespeichert ist.

  • Daten-Discovery: Ein registriertes Dataset kann mit Textabfragen aus der Datenbank erkannt werden. Die Discovery zeigt ein Dataset nur an, wenn eine Berechtigung für den Zugriff auf das Dataset vorhanden ist. Sie können nach einem registrierten Datensatz nach Name oder Beschreibung suchen.

  • Datenbeschreibung: Ermöglicht einem Benutzer das Abrufen einer Beschreibung oder Metadaten für eine Tabelle oder View, die als registriertes Dataset verfügbar gemacht wird.

  • Auslagerungsziele: Optional können Sie ein oder mehrere Auslagerungsziele angeben. Auslagerungsziele sind aktualisierbare Klone, die Cloud-Links-Datasets für angegebene Autonomous Database-Instanzen bereitstellen. Durch Angabe eines Auslagerungsziels können Sie eine Autonomous Database-Instanz dedizieren, um Datasets zur Trennung der Produktion von der Entwicklung, zur Performance, zur Gewährleistung der Sicherheit oder aus anderen Gründen bereitzustellen. Weitere Informationen finden Sie unter Aktualisierende Klone mit Autonomous Database verwenden.

Auditing von Cloud-Links

Jeder Zugriff auf ein registriertes Dataset mit Cloud-Links wird zu Auditzwecken protokolliert. Das Log enthält den Mandanten, das Compartment oder die Datenbank, auf die das Dataset zugegriffen hat, die Datenmenge, auf die zugegriffen wurde, und zusätzliche Informationen. Die Views V$CLOUD_LINK_ACCESS_STATS und GV$CLOUD_LINK_ACCESS_STATS zeigen Auditinformationen an.

Dataset-Metadaten und Auditansichten

Jede Autonomous Database-Instanz stellt Views bereit, die Dataset-Metadaten bereitstellen und die es Ihnen ermöglichen, die Datennutzung zu überwachen und zu auditieren. Weitere Informationen finden Sie unter Informationen zu Cloud-Links überwachen und anzeigen.

Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung

Cloud-Links nutzen Oracle Cloud Infrastructure-Zugriffsmechanismen, um registrierte Datasets zugänglich zu machen und Ihre Daten mit Zugriffsbeschränkungen zu schützen.

Autonomous Database bestimmt die Zugänglichkeit registrierter Datasets wie folgt:

  • Der ADMIN-Benutzer gibt einen Geltungsbereich für einen Benutzer an, der es dem Benutzer ermöglicht, Datasets basierend auf dem angegebenen Geltungsbereich zu registrieren.

  • Ein Benutzer, dem Berechtigungen zum Registrieren von Datasets erteilt wurden, gibt einen Geltungsbereich an, wenn er ein Dataset registriert.

  • Wenn Sie ein Dataset registrieren, kann ein Benutzer, dem Autorisierungsberechtigungen erteilt wurden, optional angeben, dass ein Autorisierungsschritt für den Zugriff auf ein Dataset erforderlich ist. Dieser Autorisierungsschritt wird zusätzlich zur Zugriffsautorisierung auf Umfangsebene ausgeführt.

Dataset-Geltungsbereich

Der ADMIN legt den Geltungsbereich eines Benutzers mit DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER auf einen der folgenden Werte fest:

  • 'MY$REGION'
  • 'MY$TENANCY'
  • 'MY$COMPARTMENT'

Der Geltungsbereich eines Benutzers ist hierarchisch, d.h. ein Benutzer, dem einer dieser Geltungsbereiche erteilt wurde, kann den Zugriff wie folgt zulassen:

  • MY$REGION: Ein Benutzer kann anderen Mandanten in der Region der Autonomous Database-Instanz, die das Dataset registriert, Remote-Datenzugriff erteilen. Dies ist der am wenigsten restriktive Geltungsbereich.

  • MY$TENANCY: Ein Benutzer kann Remotedatenzugriff auf alle Ressourcen, Mandanten, Compartments oder Datenbanken im Mandanten der Autonomous Database-Instanz erteilen, die das Dataset registriert. Dieser Geltungsbereich ist restriktiver als der Geltungsbereich MY$REGION.

  • MY$COMPARTMENT: Ein Benutzer kann Remotedatenzugriff auf jede Ressource, jedes Compartment oder jede Datenbank im Compartment der Autonomous Database-Instanz erteilen, die das Dataset registriert. Dies ist der restriktivste Geltungsbereich, den Sie für einen Benutzer mit GRANT_REGISTER festlegen können.

Als Nächstes bestimmt der Geltungsbereich, den Sie beim Registrieren eines Datasets festlegen, von wo aus Benutzer auf das Dataset zugreifen dürfen. DBMS_CLOUD_LINK.REGISTER scope ist eine durch Komma getrennte Liste, die aus mindestens einem der folgenden Elemente besteht:

  • Datenbank-OCID: Zugriff auf das Dataset ist für die spezifischen, per OCID identifizierten Autonomous Database-Instanzen zulässig.

  • Compartment-OCID: Zugriff auf das Dataset ist für Datenbanken in den per Compartment-OCID identifizierten Compartments zulässig.

  • Mandanten-OCID: Zugriff auf das Dataset ist für Datenbanken in den per Mandanten-OCID identifizierten Mandanten zulässig.

  • Regionsname: Zugriff auf das Dataset ist für Datenbanken in der von der benannten Region angegebenen Region zulässig. In allen Fällen ist der Cloud-Linkzugriff auf den Zugriff innerhalb einer einzelnen Region beschränkt und erfolgt nicht regionsübergreifend.

  • MY$COMPARTMENT: Zugriff auf das Dataset ist für Datenbanken in dem Compartment zulässig, in dem sich der Dataset-Eigentümer befindet.

  • MY$TENANCY: Zugriff auf das Dataset ist für Datenbanken in demselben Mandanten wie der Dataset-Eigentümer zulässig.

  • MY$REGION: Zugriff auf das Dataset ist für Datenbanken in der Region zulässig, in der sich der Dataset-Eigentümer befindet.

Die Geltungsbereichswerte MY$REGION, MY$TENANCY und MY$COMPARTMENT sind Variablen, die als Komfortmakros fungieren und in OCIDs aufgelöst werden.

Hinweis

Der Geltungsbereich, den Sie bei der Registrierung eines Datasets festlegen, wird nur berücksichtigt, wenn er mit dem mit DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER festgelegten Wert übereinstimmt oder restriktiver ist. Beispiel: Angenommen, der ADMIN hat den Geltungsbereich 'MY$TENANCY' mit GRANT_REGISTER erteilt, und der Benutzer gibt 'MY$REGION' an, wenn er ein Dataset bei DBMS_CLOUD_LINK.REGISTER registriert. In diesem Fall wird ein Fehler wie der Folgende angezeigt:
ORA-20001: Share privileges are not enabled for current user or it is enabled but not for scope MY$REGION

Sie können auch einen zusätzlichen Zugriffskontrollmechanismus verwenden, der auf einem SYS_CONTEXT-Wert basiert. Dieser Mechanismus verwendet die Funktion DBMS_CLOUD_LINK.GET_DATABASE_ID, die eine ID zurückgibt, die als SYS_CONTEXT-Wert verfügbar ist.

Wenn Sie ein Dataset bei DBMS_CLOUD_LINK.REGISTER registrieren, können Sie mit dem Wert SYS_CONTEXT in Oracle Virtual Private Database-(VPD-)Sicherheits-Policys den Datenbankzugriff kontrollieren, um den Zugriff auf bestimmte Daten durch einzelne Autonomous Database-Instanzen weiter einzuschränken und zu kontrollieren.

Weitere Informationen zur Verwendung von VPD-Policys finden Sie unter Policy für virtuelle private Datenbanken zum Sichern eines registrierten Datasets definieren.

Der Datenbank-ID-Wert ist auch in den Views V$CLOUD_LINK_ACCESS_STATS und GV$CLOUD_LINK_ACCESS_STATS verfügbar, die Zugriffsstatistiken und Auditinformationen verfolgen.

Weitere Informationen finden Sie unter Datenzugriff mit Oracle Virtual Private Database steuern.

Dataset-Autorisierung

Wenn Sie ein Dataset registrieren und Ihnen Autorisierungsberechtigungen erteilt wurden, können Sie angeben, dass die Datenbank-OCID-Autorisierung für den Zugriff auf ein Dataset erforderlich ist. Um die Datenbank-OCID-Autorisierung für ein Dataset bereitzustellen, geben Sie mit der Prozedur DBMS_CLOUD_LINK.GRANT_AUTHORIZATION die Autonomous Database-Instanzen an, die für den Zugriff auf das Dataset autorisiert sind. Bevor Sie DBMS_CLOUD_LINK.GRANT_AUTHORIZATION ausführen, muss der ADMIN Sie autorisieren, diese Prozedur mit DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE auszuführen.

Die Dataset-Registrierung mit erforderlicher Autorisierung gibt den Zugriff auf Datenbankebene für ein Dataset zusätzlich zur für das Dataset angegebenen Zugriffskontrolle für den Geltungsbereich wie folgt an:

  • Datenbanken, die sich innerhalb des angegebenen SCOPE befinden und mit DBMS_CLOUD_LINK.GRANT_AUTHORIZATION autorisiert wurden, können Zeilen aus dem Dataset anzeigen.

  • Alle Datenbanken, die sich innerhalb des angegebenen SCOPE befinden, aber nicht mit DBMS_CLOUD_LINK.GRANT_AUTHORIZATION autorisiert wurden, können keine Dataset-Zeilen anzeigen. In diesem Fall sehen Verbraucher ohne Autorisierung den Datensatz als leer.

  • Datenbanken, die sich nicht innerhalb der angegebenen SCOPE befinden, erhalten beim Versuch, auf das Dataset zuzugreifen, einen Fehler.

Zugriff auf Cloud-Links für Datenbankbenutzer erteilen

Der ADMIN-Benutzer erteilt Datenbankbenutzern Berechtigungen zum Registrieren von Datasets. Der ADMIN-Benutzer erteilt Datenbankbenutzern auch Berechtigungen für den Zugriff auf registrierte Datasets.

Erteilt der ADMIN-Benutzer Registerberechtigungen, stellt er einen Geltungsbereich bereit, der den maximalen Geltungsbereich angibt, den ein Benutzer bei der Registrierung eines Datasets (innerhalb der Geltungsbereichshierarchie) angeben kann. Die gültigen scope-Werte für die Verwendung mit DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER sind:

  • 'MY$REGION'
  • 'MY$TENANCY'
  • 'MY$COMPARTMENT'

Weitere Informationen finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

  1. Lassen Sie als ADMIN-Benutzer zu, dass ein Benutzer Datasets innerhalb eines angegebenen Geltungsbereichs registriert.
    BEGIN
    DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER(
       username => 'DB_USER1',
       scope    => 'MY$REGION');
    END;
    /

    Dadurch wird angegeben, dass der Benutzer DB_USER1 über Berechtigungen zum Registrieren von Datasets innerhalb eines angegebenen Geltungsbereichs verfügt, 'MY$REGION'.

    Ein Benutzer kann SYS_CONTEXT('USERENV', 'CLOUD_LINK_REGISTER_ENABLED') abfragen, um zu prüfen, ob sie für die Registrierung von Datasets aktiviert sind.

    Beispiel: Die folgende Abfrage:

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

    Gibt "YES" oder "NO'" zurück.

    Weitere Informationen finden Sie unter Prozedur GRANT_REGISTER.

  2. Erlauben Sie einem Benutzer als ADMIN-Benutzer den Zugriff auf registrierte Datasets.
    EXEC DBMS_CLOUD_LINK_ADMIN.GRANT_READ('LWARD');

    Dadurch kann LWARD auf registrierte Datasets zugreifen, die für die Autonomous Database-Instanz verfügbar sind.

    Ein Benutzer kann SYS_CONTEXT('USERENV', 'CLOUD_LINK_READ_ENABLED') abfragen, um zu prüfen, ob er für den READ-Zugriff auf ein Dataset aktiviert ist.

    Beispiel: Die folgende Abfrage:

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

    Gibt "YES" oder "NO'" zurück.

    Weitere Informationen finden Sie unter Prozedur GRANT_READ.

  3. Während der Datenregistrierung können Sie den Parameter für die erforderliche Autorisierung auf TRUE setzen. Wenn die Autorisierung TRUE erforderlich ist, muss der ADMIN-Benutzer DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE ausführen, um die Autorisierung zum Aufrufen von DBMS_CLOUD_LINK.GRANT_AUTHORIZATION bereitzustellen. Verwenden Sie DBMS_CLOUD_LINK.GRANT_AUTHORIZATION, um Autorisierungsdetails anzugeben.

    Weitere Informationen finden Sie unter Dataset mit erforderlicher Autorisierung registrieren.

  4. Wenn für die Autonomous Database-Instanz Database Vault aktiviert ist und die Tabelle oder View, die bei Cloud-Links registriert werden soll, durch eine Realm geschützt ist, muss der Eigentümer der Tabelle oder View vor der Registrierung für die Realm als Realm-Eigentümer autorisiert werden.
    BEGIN
         DBMS_MACADM.ADD_AUTH_TO_REALM(
               realm_name   => 'myrealm',
               grantee      => 'object_owner',
               auth_option  => dbms_macutl.g_realm_auth_owner);
    END;
    /

    Wenn die Realm, die die Tabelle oder View schützt, eine obligatorische Realm ist, muss das allgemeine Autonomous Database-Schema C##DATA$SHARE, das intern als Verbindungsschema verwendet wird, für die Realm als Realm-Teilnehmer autorisiert werden.

    Beispiele:

    BEGIN
         DBMS_MACADM.ADD_AUTH_TO_REALM(
               realm_name   => 'myrealm',
               grantee      => 'C##DATA$SHARE',
               auth_option  => dbms_macutl.g_realm_auth_participant);
    END;
    /

    Weitere Informationen finden Sie unter Oracle Database Vault mit Autonomous Database verwenden.

Hinweise zum Erteilen von Berechtigungen für Datenbankbenutzer zum Registrieren von Datasets:

  • Um Datasets zu registrieren oder Remote-Datasets anzuzeigen und darauf zuzugreifen, müssen Sie die entsprechende Berechtigung zum Registrieren bei DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER oder zum Lesen von Datasets bei DBMS_CLOUD_LINK_ADMIN.GRANT_READ erteilt haben.

    Dies gilt auch für den ADMIN-Benutzer. Der ADMIN-Benutzer kann ihm jedoch Berechtigungen erteilen.

  • Die Ansichten DBA_CLOUD_LINK_PRIVS und USER_CLOUD_LINK_PRIVS enthalten Informationen zu Benutzerberechtigungen. Weitere Informationen finden Sie unter Cloud-Linkinformationen überwachen und anzeigen.

  • Ein Benutzer kann die folgende Abfrage ausführen, um zu prüfen, ob sie für die Authentifizierung registrierter, geschützter Datasets aktiviert sind:

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

Zugriff auf Cloud-Links für Datenbankbenutzer entziehen

Der ADMIN-Benutzer kann die Registrierung widerrufen, um zu verhindern, dass ein Benutzer Datasets für den Remotezugriff registriert. Der ADMIN-Benutzer kann auch Berechtigungen oder Datenbankbenutzer für den Zugriff auf registrierte Datasets entziehen.

  1. Entziehen Sie als ADMIN-Benutzer die Berechtigungen eines Benutzers zur Registrierung von Datasets.

    Beispiele:

    EXEC DBMS_CLOUD_LINK_ADMIN.REVOKE_REGISTER('DB_USER1');

    Dadurch werden die Berechtigungen zum Registrieren von Datasets für den Benutzer DB_USER1 entzogen.

    Die Ausführung von DBMS_CLOUD_LINK_ADMIN.REVOKE_REGISTER wirkt sich nicht auf bereits registrierte Datasets aus. Verwenden Sie DBMS_CLOUD_LINK.UNREGISTER, um den Zugriff für ein registriertes Dataset zu entfernen.

    Weitere Informationen finden Sie unter Prozedur REVOKE_REGISTER und Prozedur UNREGISTER.

  2. Entziehen Sie als ADMIN-Benutzer den Zugriff auf registrierte Datasets.

    Beispiele:

    EXEC DBMS_CLOUD_LINK_ADMIN.REVOKE_READ('LWARD');

    Dadurch wird der Zugriff auf Cloud-Links-Datasets für den Benutzer LWARD entzogen.

    Weitere Informationen finden Sie unter Prozedur REVOKE_READ.

Dataset registrieren

Beschreibt die Optionen und Schritte zum Registrieren einer Tabelle oder Ansicht, deren Eigentümer Sie sind, als registriertes Dataset für die Freigabe mit Cloud-Links.

Dataset registrieren oder Registrierung aufheben

Sie können eine Tabelle oder View, für die Sie verantwortlich sind, als registriertes Dataset registrieren. Wenn Sie das Dataset entfernen oder ersetzen möchten, müssen Sie die Registrierung aufheben. Nachdem Sie ein Dataset registriert haben, können Sie die Werte der Attribute eines Datasets ändern.

Die Dataset-Registrierung definiert einen Namespace und einen Namen für die Verwendung mit Cloud-Links. Nach der Dataset-Registrierung geben diese Werte zusammen den vollqualifizierten Namen (FQN) für den Remotezugriff an und ermöglichen es Cloud-Links, die Barrierefreiheit für das Dataset zu verwalten.

So registrieren Sie ein Dataset:

  1. Gewähren Sie dem ADMIN-Benutzer Berechtigungen für die Registrierung.

    Weitere Informationen finden Sie unter Zugriff auf Cloud-Links für Datenbankbenutzer erteilen.

  2. Registrieren Sie ein oder mehrere Datensätze.

    Beispiel: Wenn das Schema CLOUDLINK in der Autonomous Database-Instanz vorhanden ist, können Sie zwei Objekte registrieren, SALES_VIEW_AGG und SALES_ALL, und verschiedene scope-Parameter angeben, um den Zugriff auf die Objekte zu bestimmen.

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_VIEW_AGG',
        namespace      => 'REGIONAL_SALES', 
        name           => 'SALES_AGG',
        description    => 'Aggregated regional sales information.',
        scope          => 'MY$TENANCY',
        auth_required  =>  FALSE,
        data_set_owner =>  'amit@example.com' );
    END;
    /
    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_ALL',
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES',
        description    => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
        scope          => 'MY$COMPARTMENT',
        auth_required  =>  FALSE,
        data_set_owner =>  'amit@example.com' );
    END;
    /

    Parameter:

    • schema_name: Der Schemaname (der Objekteigentümer).

    • schema_object: Der Name des Objekts. Gültige Objekte sind:

      Hinweis

      Andere Objekte wie Analyse-Views oder Synonyme werden nicht unterstützt.
    • namespace: ist der Namespace, den Sie als Namen für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

      Ein NULL-Wert gibt einen vom System generierten namespace-Wert an, der für die Autonomous Database-Instanz eindeutig ist.

    • name: Der Name, den Sie für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

    • description: Gibt Text zur Beschreibung der Daten an.

    • scope: Gibt den Geltungsbereich an. Sie können eine der Variablen verwenden: MY$REGION, MY$TENANCY oder MY$COMPARTMENT oder eine oder mehrere OCIDs angeben.

      Weitere Informationen finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

    • auth_required: Ein boolescher Wert, der angibt, ob neben der Zugriffskontrolle auf den Geltungsbereich eine Autorisierung auf Datenbankebene für das Dataset erforderlich ist. Wenn dieser Wert auf TRUE gesetzt ist, erzwingt das Dataset einen zusätzlichen Autorisierungsschritt. Weitere Informationen finden Sie unter Dataset mit erforderlicher Autorisierung registrieren.

    • data_set_owner: Der Textwert gibt Informationen über die Person an, die für das Dataset verantwortlich ist, oder einen Kontakt für Fragen zum Dataset. Beispiel: Sie können eine E-Mail-Adresse für den Dataset-Eigentümer angeben.

    Weitere Informationen finden Sie unter Prozedur REGISTER.

    In diesem Beispiel unterscheidet sich der Geltungsbereich für die beiden registrierten Objekte nach Abschluss der Registrierung je nach Geltungsbereichsparameter, den Sie mit DBMS_CLOUD_LINK.REGISTER angegeben haben:

    • MY$TENANCY: Gibt den Geltungsbereich auf Mandantenebene für REGIONAL_SALES.SALES_AGG an.

    • MY$COMPARTMENT: Gibt den restriktiveren Geltungsbereich auf Compartment-Ebene im Mandanten für TRUSTED_COMPARTMENT.SALES an.

Sie können einige der Werte für die Attribute eines Datasets aktualisieren, nachdem Sie ein Dataset registriert haben. Weitere Informationen finden Sie unter Dataset-Registrierungsattribute aktualisieren.

Wenn Sie den Remotezugriff auf ein registriertes Dataset entziehen möchten, heben Sie die Registrierung des Datasets auf.

Beispiele:

BEGIN
   DBMS_CLOUD_LINK.UNREGISTER(
    namespace      => 'TRUSTED_COMPARTMENT', 
    name           => 'SALES');
END;
/

Weitere Informationen finden Sie unter Prozedur UNREGISTER.

Hinweise zum Registrieren oder Aufheben der Registrierung eines Datasets

Enthält Hinweise zum Registrieren eines Datasets bei DBMS_CLOUD_LINK.REGISTER und zum Aufheben der Registrierung eines Datasets bei DBMS_CLOUD_LINK.UNREGISTER.

  • Nachdem Sie ein Objekt registriert haben, müssen Benutzer möglicherweise bis zu zehn (10) Minuten warten, um mit Cloud-Links auf das Objekt zuzugreifen.

  • Wenn Sie ein Dataset registrieren und Consumer in Remoteregionen auf das Dataset zugreifen sollen, müssen Sie zusätzliche Schritte ausführen, um das Dataset in einer Remoteregion verfügbar zu machen. Weitere Informationen finden Sie unter Dataset in einer anderen Region registrieren oder deren Registrierung aufheben.

  • Verwenden Sie die Prozedur DBMS_CLOUD_LINK.UPDATE_REGISTRATION, um die Attribute für ein vorhandenes Dataset zu ändern.

    Die Wartezeit bis zum Abschluss des Updates kann bis zu 10 Minuten betragen, bis eine Registrierungsänderung propagiert und über Cloudlinks zugänglich ist. Diese Verzögerung kann sich auf die Genauigkeit der Daten in den Views DBA_CLOUD_LINK_REGISTRATIONS und DBA_CLOUD_LINK_ACCESS auswirken.

  • Sie können eine Tabelle oder View registrieren, die sich im Schema eines anderen Benutzers befindet, wenn Sie über die Berechtigungen READ WITH GRANT OPTION für die Tabelle oder View verfügen.

  • Autonomous Database führt bei der Registrierung keine hierarchischen Gültigkeitsprüfungen durch, und Registrierungen, die außerhalb des Geltungsbereichs liegen, werden nie sichtbar oder zugänglich sein.

    Beispiel: Beachten Sie die folgende Sequenz:

    1. Ein Benutzer mit dem Geltungsbereich MY$COMPARTMENT registriert ein Objekt mit einem Geltungsbereich, der eine einzelne Datenbank-OCID angibt.

    2. Wenn ein Benutzer Zugriff auf das registrierte Dataset anfordert, führt Autonomous Database die Prüfung aus, ob sich die Datenbank-OCID der Datenbank, aus der die Anforderung stammt, in der OCID-Liste befindet, die bei der Registrierung des Datasets mit scope angegeben wurde.

    3. Danach kann das Objekt namespace.name in der Datenbank, aus der die Anforderung stammt, erkannt, angezeigt und verwendet werden.

  • Die vollständige Propagierung von DBMS_CLOUD_LINK.UNREGISTER kann bis zu zehn (10) Minuten dauern. Danach kann länger remote auf die Daten zugegriffen werden.

Dataset in einer anderen Region registrieren oder Registrierung aufheben

Sie können Cloud-Links in mehreren Regionen verwenden, in denen die Quellregion die Quelldatenbank des Datasets enthält und mindestens eine Remoteregion aktualisierbare Klone der Quelldatenbank enthält.

Beschreibung von cloud-links-cross-region-refreshable-clone.png folgt
Beschreibung der Abbildung cloud-links-cross-region-refreshable-clone.png

So verwenden Sie Cloud-Links mit einem Dataset in einer anderen Region:

  1. Erstellen Sie einen regionsübergreifenden aktualisierbaren Klon der Quelldatenbank in einer Remoteregion.

    Informationen zum Hinzufügen eines regionsübergreifenden aktualisierbaren Klons finden Sie unter Mandantenübergreifenden oder regionsübergreifenden aktualisierbaren Klons erstellen.

  2. Registrieren Sie das Dataset in der Quelldatenbank.

    Weitere Informationen finden Sie unter Dataset registrieren oder Registrierung aufheben.

  3. Aktualisieren Sie den aktualisierbaren Klon.

    Weitere Informationen finden Sie unter Aktualisierbaren Klon in Autonomous Database aktualisieren.

  4. Registrieren Sie das Dataset auf dem entfernten aktualisierbaren Klon mit denselben Argumenten, mit denen Sie das Dataset in der Quellregion registriert haben.

    Beispiel: Wenn das Schema CLOUDLINK in der Autonomous Database-Instanz vorhanden ist, registrieren Sie SALES_ALL nach der Registrierung von SALES_ALL in der Quelldatenbank beim aktualisierbaren Klon:

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_ALL',
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES',
        description    => 'Trusted Compartment, only accessible within my compartment. Early sales data.',
        scope          => 'MY$COMPARTMENT',
        auth_required  =>  FALSE,
        data_set_owner =>  'amit@example.com' );
    END;
    /

    Parameter:

    • schema_name: Der Schemaname (der Objekteigentümer).

    • schema_object: Der Name des Objekts. Gültige Objekte sind:

      • Tabellen (einschließlich Heap, extern oder Hybrid)
      • Views
      • Materialized Views
      Hinweis

      Andere Objekte wie Analyse-Views oder Synonyme werden nicht unterstützt.
    • namespace: ist der Namespace, den Sie als Namen für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

      Ein NULL-Wert gibt einen vom System generierten namespace-Wert an, der für die Autonomous Database-Instanz eindeutig ist.

    • name: Der Name, den Sie für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

    • description: Gibt Text zur Beschreibung der Daten an.

    • scope: Gibt den Geltungsbereich an. Sie können eine der Variablen verwenden: MY$REGION, MY$TENANCY oder MY$COMPARTMENT oder eine oder mehrere OCIDs angeben.

      Weitere Informationen finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

    • auth_required: Ein boolescher Wert, der angibt, ob neben der Zugriffskontrolle auf den Geltungsbereich eine Autorisierung auf Datenbankebene für das Dataset erforderlich ist. Wenn dieser Wert auf TRUE gesetzt ist, erzwingt das Dataset einen zusätzlichen Autorisierungsschritt. Weitere Informationen finden Sie unter Dataset mit erforderlicher Autorisierung registrieren.

    • data_set_owner: Der Textwert gibt Informationen über die Person an, die für das Dataset verantwortlich ist, oder einen Kontakt für Fragen zum Dataset. Beispiel: Sie können eine E-Mail-Adresse für den Dataset-Eigentümer angeben.

    Weitere Informationen finden Sie unter Prozedur REGISTER.

    Nach Abschluss der Registrierung für den aktualisierbaren Klon lautet der Geltungsbereich für das registrierte Objekt MY$COMPARTMENT: Gibt den restriktiveren Geltungsbereich auf Compartment-Ebene für mein Compartment in meinem Mandanten für TRUSTED_COMPARTMENT.SALES an.

Sie können die Registrierung eines Remote-Datasets nur in den Remoteregionen oder sowohl in den Remoteregionen als auch in der Quellregion aufheben:

So heben Sie die Registrierung eines Datasets in einer Remoteregion auf und deaktivieren den Remotezugriff auf das Dataset:

  1. Heben Sie die Registrierung des Datasets auf dem aktualisierbaren Klon auf.

    Beispiele:

    BEGIN
       DBMS_CLOUD_LINK.UNREGISTER(
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /
  2. Aktualisieren Sie den aktualisierbaren Klon.

    Weitere Informationen finden Sie unter Aktualisierbaren Klon in Autonomous Database aktualisieren.

So heben Sie die Registrierung eines Datasets in der Quelldatenbank auf und heben die Registrierung des Datasets in aktualisierbaren Klonen der Remoteregion auf:

  1. Heben Sie die Registrierung des Datasets auf dem entfernten aktualisierbaren Klon auf, wenn nur ein Klon vorhanden ist, oder auf mehreren aktualisierbaren Klonen in entfernten Regionen, wenn mehrere vorhanden sind.

    Beispiele:

    BEGIN
       DBMS_CLOUD_LINK.UNREGISTER(
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /
  2. Heben Sie die Registrierung des Datasets in der Quelldatenbank auf.

    Weitere Informationen finden Sie unter Dataset registrieren oder Registrierung aufheben.

  3. Aktualisieren Sie die aktualisierbaren Klone.

    Weitere Informationen finden Sie unter Aktualisierbaren Klon in Autonomous Database aktualisieren.

Hinweise zum Registrieren oder Aufheben der Registrierung eines Datasets in einer Remoteregion

Enthält Hinweise zum Registrieren eines Datasets in einer Remoteregion.

  • Wenn Sie ein Dataset in einem aktualisierbaren Klon in einer Remoteregion registrieren, muss der Aufruf von DBMS_CLOUD_LINK.REGISTER im Klon der Remoteregion dieselben Parameter mit denselben Werten wie in der Quelldatenbank verwenden, mit Ausnahme des Parameters offload_targets.

    Beispiel: Wenn Sie DBMS_CLOUD_LINK.REGISTER mit dem Geltungsbereich MY$COMPARTMENT in der Autonomous Database-Quellinstanz ausführen, führen Sie die Prozedur für den regionsübergreifenden aktualisierbaren Klon mit demselben Geltungsbereichsparameterwert (MY$COMPARTMENT) erneut aus.

  • Wenn Sie den Parameter offload_targets mit DBMS_CLOUD_LINK.REGISTER in der Quelle angeben, sollten Sie diesen Parameter weglassen, wenn Sie das Dataset im aktualisierbaren Klon registrieren.

  • Nachdem Sie ein Objekt registriert haben, müssen Benutzer möglicherweise bis zu zehn (10) Minuten warten, um mit Cloud-Links auf das Objekt zuzugreifen.

  • Für die folgenden Aktionen müssen Sie den aktualisierbaren Klon aktualisieren:

    • Wenn Sie dem Dataset in der Quelle eine VPD-Policy hinzufügen, müssen Sie den aktualisierbaren Klon aktualisieren.

    • Wenn Sie eine Berechtigung oder einen Entzug für das Dataset in der Quelldatenbank ausführen, müssen Sie den aktualisierbaren Klon aktualisieren.

    Weitere Informationen finden Sie unter Aktualisierbaren Klon in Autonomous Database aktualisieren.

Dataset mit erforderlicher Autorisierung registrieren

Optional können Sie beim Registrieren eines Datasets zusätzlich zum Geltungsbereich angeben, dass eine Autorisierung auf Datenbankebene für den Zugriff auf ein Dataset erforderlich ist.

Im Vergleich zum vorherigen Beispiel, in dem Sie auth_required auf FALSE setzen, setzen Sie in diesem Beispiel auth_required auf TRUE. Wenn auth_required TRUE ist, sind zusätzliche Schritte erforderlich, um eine oder mehrere Datenbanken anzugeben, von denen aus der Zugriff auf das Dataset autorisiert wird.

Hinweis

Sie können die Autorisierung nur erteilen, wie in diesen Schritten dargestellt, wenn Sie autorisiert sind. Der ADMIN erteilt Autorisierungsberechtigungen mit DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.
  1. Verwenden Sie DBMS_CLOUD_LINK.REGISTER, um Daten mit erforderlicher Autorisierung zu registrieren.

    Wenn das Schema CLOUDLINK in der Autonomous Database-Instanz vorhanden ist und Sie das Objekt SALES_VIEW_AGG registrieren und auth_required auf TRUE setzen, müssen Sie zusätzlich zur Definition des Geltungsbereichs weitere Schritte ausführen, um den Zugriff auf das Objekt zu bestimmen.

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name    => 'CLOUDLINK',
        schema_object  => 'SALES_VIEW_AGG',
        namespace      => 'REGIONAL_SALES', 
        name           => 'SALES_AGG',
        description    => 'Aggregated regional sales information.',
        scope          => 'MY$TENANCY',
        auth_required  =>  TRUE,
        data_set_owner =>  'amit@example.com' );
    END;
    /

    Parameter:

    • schema_name: Der Schemaname (der Objekteigentümer).

    • schema_object: Der Name des Objekts. Gültige Objekte sind:

      • Tabellen (einschließlich Heap, extern oder Hybrid)
      • Views
      • Materialized Views
      Hinweis

      Andere Objekte wie Analyse-Views oder Synonyme werden nicht unterstützt.
    • namespace: ist der Namespace, den Sie als Namen für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

      Ein NULL-Wert gibt einen vom System generierten namespace-Wert an, der für die Autonomous Database-Instanz eindeutig ist.

    • name: Der Name, den Sie für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

    • scope: Gibt den Geltungsbereich an. Sie können eine der Variablen verwenden: MY$REGION, MY$TENANCY oder MY$COMPARTMENT oder eine oder mehrere OCIDs angeben.

      Weitere Informationen finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

    • auth_required: Ein boolescher Wert, der angibt, ob neben der Zugriffskontrolle auf den Geltungsbereich eine Autorisierung auf Datenbankebene für das Dataset erforderlich ist. Wenn dieser Wert auf TRUE gesetzt ist, erzwingt das Dataset einen zusätzlichen Autorisierungsschritt.

    • data_set_owner: Der Textwert gibt Informationen über die Person an, die für das Dataset verantwortlich ist, oder einen Kontakt für Fragen zum Dataset. Beispiel: Sie können eine E-Mail-Adresse für den Dataset-Eigentümer angeben.

  2. Rufen Sie die Datenbank-ID für die Datenbank ab, für die Sie die Autorisierung erteilen möchten (um der Datenbank den Zugriff auf das Dataset zu ermöglichen).

    Auf dem System, dem Sie Zugriff auf das Dataset erteilen möchten:

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:
  3. Verwenden Sie die Datenbank-ID, die Sie erhalten haben, um einem angegebenen Dataset Autorisierung zu erteilen.

    Sie können die Autorisierung nur erteilen und DBMS_CLOUD_LINK.GRANT_AUTHORIZATION ausführen, wie in diesem Schritt gezeigt, wenn Sie autorisiert sind. Der ADMIN erteilt die Autorisierung mit DBMS_CLOUD_LINK_ADMIN.GRANT_AUTHORIZE.

    BEGIN
       DBMS_CLOUD_LINK.GRANT_AUTHORIZATION(
        database_id    => '120xxxxxxx8506029999',
        namespace      => 'TRUSTED_COMPARTMENT', 
        name           => 'SALES');
    END;
    /

    Führen Sie diese Schritte mehrmals aus, wenn Sie zusätzliche Datenbanken autorisieren möchten.

Sie können den Wert des Parameters auth_required aktualisieren, nachdem Sie ein Dataset registriert haben. Weitere Informationen finden Sie unter Dataset-Registrierungsattribute aktualisieren.

Wenn Sie die Autorisierung für eine Datenbank widerrufen möchten:

BEGIN
   DBMS_CLOUD_LINK.REVOKE_AUTHORIZATION(
    database_id    => '120xxxxxxx8506029999',
    namespace      => 'TRUSTED_COMPARTMENT', 
    name           => 'SALES');
END;
/

In den folgenden Themen finden Sie weitere Informationen:

Dataset mit Offload-Zielen für Dataset-Zugriff registrieren

Wenn Sie ein Dataset registrieren, können Sie optional den Zugriff auf das Dataset auf eine oder mehrere Autonomous Database-Instanzen auslagern, die aktualisierbare Klone sind.

Verwenden Sie den optionalen Parameter offload_targets mit DBMS_CLOUD_LINK.REGISTER, um anzugeben, dass der Zugriff auf aktualisierbare Klone ausgelagert wird. Die Quelldatenbank für jeden aktualisierbaren Klon ist die Autonomous Database-Instanz, in der Sie das Dataset (Datenherausgeber) registrieren.

Der Wert offload_targets ist ein JSON-Dokument, das mindestens ein Schlüssel/Wert-Paar CLOUD_LINK_DATABASE_ID und OFFLOAD_TARGET definiert:

  • CLOUD_LINK_DATABASE_ID ist eine der folgenden Optionen:

    • Eine Datenbank-ID: Gibt eine Datenbank-ID für den Dataset-Consumer an, dessen Anforderung an den entsprechenden aktualisierbaren Klon ausgelagert wird, der mit dem Wert OFFLOAD_TARGET angegeben wird.

      Rufen Sie die Datenbank-ID ab, indem Sie DBMS_CLOUD_LINK.GET_DATABASE_ID ausführen. Weitere Informationen finden Sie unter Funktion GET_DATABASE_ID.

    • ANY: Gibt an, dass die Anforderung eines Dataset-Consumers an das entsprechende Offload-Ziel ausgelagert wird. Die Dataset-Anforderung eines Consumers wird an das entsprechende Offload-Ziel weitergeleitet.

      Wenn Sie ANY angeben, ohne Datenbank-IDs anzugeben, werden alle Dataset-Anforderungen von Consumern in den aktualisierbaren Klon ausgelagert, der mit dem Wert OFFLOAD_TARGET angegeben wird.

      Wenn Sie sowohl Datenbank-IDs als auch ANY angeben, werden Dataset-Anforderungen von Consumern, die keiner Datenbank-ID entsprechen, in den aktualisierbaren Klon ausgelagert, der mit dem Wert OFFLOAD_TARGET angegeben wird.

  • OFFLOAD_TARGET ist die OCID für eine Autonomous Database-Instanz, die ein aktualisierbarer Klon ist.

Die folgende Abbildung veranschaulicht die Verwendung von Auslagerungszielen.

Wenn ein Dataset-Consumer Zugriff auf ein Dataset anfordert, das Sie bei offload_targets registrieren, und die Datenbank-ID der Autonomous Database-Instanz mit dem in CLOUD_LINK_DATABASE_ID angegebenen Wert übereinstimmt, wird der Zugriff auf den aktualisierbaren Klon ausgelagert, der in der angegebenen JSON mit OFFLOAD_TARGET identifiziert wird.

Beispiel: Das folgende Beispiel zeigt ein JSON-Beispiel mit drei OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID-Wertpaaren:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx69708978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfabc"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx89898978",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

Wenn ein Dataset-Consumer Zugriff auf ein Dataset anfordert, das Sie mit offload_targets registrieren, das das Schlüsselwort ANY enthält, wird der Zugriff auf den aktualisierbaren Klon, der mit OFFLOAD_TARGET in der angegebenen JSON identifiziert wird, ausgelagert (mit Ausnahme von Anforderungen von Consumern, die einen übereinstimmenden Datenbank-ID-Eintrag in der angegebenen JSON haben).

Beispiel: Im Folgenden wird ein JSON-Beispiel mit einem expliziten Wertpaar OFFLOAD_TARGET/CLOUD_LINK_DATABASE_ID und einem ANY-Wert mit einem entsprechenden OFFLOAD_TARGET dargestellt:

{
  "OFFLOAD_TARGETS": [
    {
      "CLOUD_LINK_DATABASE_ID": "ANY",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfdef"
    },
    {
      "CLOUD_LINK_DATABASE_ID": "34xxxxx4755680",
      "OFFLOAD_TARGET":
"ocid1.autonomousdatabase.oc1..xxxxx3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
    }
  ]
}

So registrieren Sie ein Dataset und geben Auslagerungsziele an:

  1. Rufen Sie die OCID für mindestens einen aktualisierbaren Klon ab, in den Sie den Dataset-Zugriff auslagern möchten. Aktualisierbare Klon-OCIDs sind in der Oracle Cloud Infrastructure-Konsole in einem aktualisierbaren Klon verfügbar.
    Hinweis

    Es kann bis zu 10 Minuten dauern, nachdem Sie einen aktualisierbaren Klon erstellt haben, damit der aktualisierbare Klon als Auslagerungsziel sichtbar ist. Das bedeutet, dass Sie möglicherweise bis zu 10 Minuten warten müssen, nachdem Sie einen aktualisierbaren Klon erstellt haben, damit der aktualisierbare Klon für die Cloud Links-Offload-Registrierung verfügbar ist.
  2. Rufen Sie die Datenbank-ID für mindestens eine Autonomous Database-Instanz ab, auf die Sie mit den vom aktualisierbaren Klon bereitgestellten Daten auf das Dataset zugreifen möchten.

    Führen Sie auf dem System, auf das Sie von einem aktualisierbaren Klon aus zugreifen möchten, den folgenden Befehl aus:

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:
  3. Registrieren Sie ein Dataset, und geben Sie den Parameter offload_targets an.

    Beispiel: Wenn das Schema CLOUDLINK in der Autonomous Database-Instanz vorhanden ist, können Sie SALES_VIEW_AGG registrieren und die aktualisierbaren Klone angeben, die Zugriff auf das Dataset ermöglichen:

    BEGIN
       DBMS_CLOUD_LINK.REGISTER(
        schema_name     => 'CLOUDLINK',
        schema_object   => 'SALES_VIEW_AGG',
        namespace       => 'REGIONAL_SALES', 
        name            => 'SALES_AGG',
        description     => 'Aggregated regional sales information.',
        scope           => 'MY$TENANCY',
        auth_required   =>  FALSE,
        data_set_owner  =>  'amit@example.com',
        offload_targets => '{
      "OFFLOAD_TARGETS": [
        {
          "CLOUD_LINK_DATABASE_ID": "34xxxx754755680",
          "OFFLOAD_TARGET":
    "ocid1.autonomousdatabase.oc1..xxxxxaaba3pv6wkcr4jqae5f44n2b2m2yt2j6rx32uzr4h25vqstifsfghi"
        }
      ]
    }');
    END;
    /

    Parameter:

    • schema_name: Der Schemaname (der Objekteigentümer).

    • schema_object: Der Name des Objekts. Gültige Objekte sind:

      • Tabellen (einschließlich Heap, extern oder Hybrid)
      • Views
      • Materialized Views
      Hinweis

      Andere Objekte wie Analyse-Views oder Synonyme werden nicht unterstützt.
    • namespace: ist der Namespace, den Sie als Namen für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

      Ein NULL-Wert gibt einen vom System generierten namespace-Wert an, der für die Autonomous Database-Instanz eindeutig ist.

    • name: Der Name, den Sie für den Zugriff mit Cloud-Links angeben (ein Teil des Cloud-Link-FQN).

    • scope: Gibt den Geltungsbereich an. Sie können eine der Variablen verwenden: MY$REGION, MY$TENANCY oder MY$COMPARTMENT oder eine oder mehrere OCIDs angeben.

      Weitere Informationen finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

    • auth_required: Ein boolescher Wert, der angibt, ob neben der Zugriffskontrolle auf den Geltungsbereich eine Autorisierung auf Datenbankebene für das Dataset erforderlich ist. Wenn dieser Wert auf TRUE gesetzt ist, erzwingt das Dataset einen zusätzlichen Autorisierungsschritt. Weitere Informationen finden Sie unter Dataset mit erforderlicher Autorisierung registrieren.

    • data_set_owner: Der Textwert gibt Informationen über die Person an, die für das Dataset verantwortlich ist, oder einen Kontakt für Fragen zum Dataset. Beispiel: Sie können eine E-Mail-Adresse für den Dataset-Eigentümer angeben.

    • offload_targets: Gibt mindestens eine Autonomous Database-OCID aktualisierbarer Klone an, bei der der Zugriff auf Datasets aus der Autonomous Database ausgelagert wird, in der das Dataset registriert ist.

      Für jeden Dataset-Consumer kann eine der folgenden Übereinstimmungen ausgeführt werden, um die Anforderung an einen aktualisierbaren Klon auszulagern:

      • Wenn der Wert der angegebenen cloud_link_database_id übereinstimmt, d.h. die Werte stimmen mit der Datenbank-ID des Consumers überein, wird der Zugriff auf den aktualisierbaren Klon ausgelagert, der mit der in offload_target angegebenen OCID identifiziert wird.

      • Wenn das Schlüsselwort ANY angegeben ist und der Wert einer angegebenen cloud_link_database_id nicht übereinstimmt, wird der Zugriff an den aktualisierbaren Klon ausgelagert, der durch die in der entsprechenden offload_target angegebene OCID mit dem ANY-Eintrag identifiziert wird.

    In den folgenden Themen finden Sie weitere Informationen:

Dataset-Registrierungsattribute aktualisieren

Nachdem Sie ein Dataset registriert haben, können Sie einige Dataset-Attribute aktualisieren. Schemaname, Schemaobjekt, Namespace oder Namensattribute können nicht aktualisiert werden.

So aktualisieren Sie Dataset-Attribute:

  1. Der Benutzer, der ein Dataset registriert hat, kann seine Attribute mit DBMS_CLOUD_LINK.UPDATE_REGISTRATION aktualisieren.

    Wenn Sie keine Berechtigungen zum Aktualisieren von Dataset-Attributen haben, müssen Sie vom ADMIN-Benutzer Registerberechtigungen erteilen.

    Weitere Informationen finden Sie unter Cloud-Links Zugriff für Datenbankbenutzer erteilen.

  2. Aktualisieren Sie mindestens ein Attribut für ein Dataset.

    Beispiel: Verwenden Sie DBMS_CLOUD_LINK.UPDATE_REGISTRATION, um die Attribute description, scope und auth_required für das Dataset im Namespace REGIONAL_SALES mit dem Namen SALES_AGG zu aktualisieren:

    BEGIN
       DBMS_CLOUD_LINK.UPDATE_REGISTRATION(
        namespace      => 'REGIONAL_SALES', 
        name           => 'SALES_AGG',
        description    => 'Updated description for aggregated regional sales information.',
        scope          => 'MY$COMPARTMENT',
        auth_required  =>  TRUE );
    END;
    /

    Die erforderlichen Parameter:

    • namespace: Der Namespace des Datasets, den Sie bei der Registrierung des Datasets angegeben haben.

    • name: Der Name des Datasets, den Sie bei der Registrierung des Datasets angegeben haben.

    Im Folgenden finden Sie eine Liste der optionalen Parameter. Wenn NULL für einen optionalen Parameterwert übergeben wird, wird das Attribut nicht geändert.

    • description: Gibt den aktualisierten Text zur Beschreibung der Daten an.

    • scope: Gibt den Geltungsbereich an. Sie können eine der Variablen verwenden: MY$REGION, MY$TENANCY oder MY$COMPARTMENT oder eine oder mehrere OCIDs angeben.

      Weitere Informationen finden Sie unter Dataset-Geltungsbereich, Zugriffskontrolle und Autorisierung.

    • auth_required: Ein boolescher Wert, der angibt, ob die Autorisierung auf Datenbankebene für das Dataset zusätzlich zur Geltungsbereichszugriffskontrolle erforderlich ist. Wenn dieser Wert auf TRUE gesetzt ist, erzwingt das Dataset einen zusätzlichen Autorisierungsschritt. Weitere Informationen finden Sie unter Dataset mit erforderlicher Autorisierung registrieren.

    • data_set_owner: Der Textwert gibt Informationen über die Person an, die für das Dataset verantwortlich ist, oder einen Kontakt für Fragen zum Dataset. Beispiel: Sie können eine E-Mail-Adresse für den Dataset-Eigentümer angeben.

    • offload_targets: Gibt eine oder mehrere Autonomous Database-OCIDs von aktualisierbaren Klonen an, bei denen der Zugriff auf Datasets aus der Autonomous Database ausgelagert wird, in der das Dataset registriert ist. Weitere Informationen finden Sie unter Dataset mit Auslagerungszielen für Dataset-Zugriff registrieren.

    Sie können die Attribute schema_name oder schema_object nicht aktualisieren.

    Weitere Informationen finden Sie unter Prozedur UPDATE_REGISTRATION.

Wenn ein Dataset in einem oder mehreren regionsübergreifenden aktualisierbaren Klonen registriert ist, müssen alle Änderungen an der Registrierung in der Quelldatenbank an die Remoteregionen propagiert werden.

Beachten Sie Folgendes, um Änderungen an regionsübergreifende aktualisierbare Klone zu propagieren:

  • Wenn ein Producer N regionsübergreifende aktualisierbare Klone in einer Region hat, z.B. in Region A, führen Sie DBMS_CLOUD_LINK.UPDATE_REGISTRATION auf genau einem aktualisierbaren Klon in Region A aus.

  • Wenn derselbe Producer M regionsübergreifende aktualisierbare Klone in einer anderen Remoteregion hat, z.B. in Region B, führen Sie DBMS_CLOUD_LINK.UPDATE_REGISTRATION auf genau einem aktualisierbaren Klon in Region B aus.

So aktualisieren Sie Attribute, wenn ein Dataset in mindestens einem regionsübergreifenden aktualisierbaren Klon registriert ist:

  1. Aktualisieren Sie in der Quelldatenbank die Dataset-Registrierung.

  2. Aktualisieren Sie bei einem remoten aktualisierbaren Klon in der Remoteregion, wenn nur eine Remoteregion vorhanden ist, oder bei einem remoten aktualisierbaren Klon in jeder Remoteregion, wenn replizierte aktualisierbare Klone in mehreren Regionen vorhanden sind, die Dataset-Registrierung mit denselben Werten, die Sie zum Aktualisieren der Quelldatenbank verwendet haben, mit Ausnahme des Parameters offload_targets.

    In einer bestimmten Remoteregion müssen Sie DBMS_CLOUD_LINK.UPDATE_REGISTRATION nur für genau einen aktualisierbaren Klon in dieser Region ausführen (wenn der Region mehrere aktualisierbare Klone mit demselben Dataset verknüpft sind, müssen Sie die Prozedur nur einmal ausführen, um die Änderungen an alle aktualisierbaren Klone in einer einzelnen Remoteregion zu propagieren).

  3. Aktualisieren Sie die aktualisierbaren Klone.

    Weitere Informationen finden Sie unter Aktualisierbaren Klon in Autonomous Database aktualisieren.

Datasets suchen und Cloud-Links verwenden

Ein Benutzer, dem Zugriff zum Lesen von Cloudlinks erteilt wurde, kann nach Datasets suchen, die für eine Autonomous Database-Instanz verfügbar sind, und kann auf registrierte Datasets mit ihren Abfragen zugreifen und diese verwenden.

Nachdem der ADMIN-Benutzer GRANT_READ ausgeführt hat, kann ein Benutzer Cloudlinks suchen und verwenden.

  1. Suchen Sie die verfügbaren Datasets in der Autonomous Database-Instanz.

    Beispiel: Suchen Sie nach allen Datasets, die den String "TREE" enthalten:

    DECLARE
       result CLOB DEFAULT NULL;
    BEGIN
       DBMS_CLOUD_LINK.FIND('TREE', result);
        DBMS_OUTPUT.PUT_LINE(result);
    END;
    /
    
    [{"name":"TREE_DATA","namespace":"FOREST","description":"Urban tree data including county, species and height"}]

    Parameter:

    • search_string: Die zu suchende Zeichenfolge. Bei der Suchfolge muss nicht zwischen Groß- und Kleinschreibung unterschieden werden.

    • search_result: Ein JSON-Dokument, das die Namespace-, Namens- und Beschreibungswerte für das Dataset enthält.

    Weitere Informationen finden Sie unter Prozedur FIND.

    Die Prozedur DBMS_CLOUD_LINK.FIND stellt den FQN bereit, den Sie mit Cloud-Links verwenden können. In diesem Fall FOREST.TREE_DATA.

  2. Verwenden Sie die Ansicht DBA_CLOUD_LINK_ACCESS, um verfügbare Datasets aufzulisten:
    SELECT * FROM DBA_CLOUD_LINK_ACCESS;
    
    NAMESPACE            NAME
    ---------            -------------- 
    FOREST               TREE_DATA 
    REGIONAL_SALES       SALES_AGG
    TRUSTED_COMPARTMENT  SALES
  3. Verwenden Sie die Prozedur DBMS_CLOUD_LINK.DESCRIBE, um weitere Details zu einem registrierten Dataset zu erhalten.
    SELECT DBMS_CLOUD_LINK.DESCRIBE('FOREST','TREE_DATA') FROM DUAL;
    
    DBMS_CLOUD_LINK.DESCRIBE('FOREST','TREE_DATA')
    ---------------------------------------------------
    Urban tree data including county, species and height
  4. Verwenden Sie das registrierte Dataset in einer Abfrage.
    SELECT * FROM FOREST.TREE_DATA@cloud$link;
    Hinweis

    Nach der Registrierung eines Datasets bei DBMS_CLOUD_LINK.REGISTER kann es bis zu 10 Minuten dauern, bis das Dataset sichtbar und zugänglich ist.
Cloud-Links unterstützen private und öffentliche Synonyme. Beispiel: Sie können ein Synonym für FOREST.TREE_DATA@cloud$link definieren und verwenden:
CREATE SYNONYM S1 for FOREST.TREE_DATA@cloud$link;
CREATE PUBLIC SYNONYM S2 for FOREST.TREE_DATA@cloud$link;

SELECT * FROM S1;

SELECT * FROM S2;

Weitere Informationen finden Sie unter CREATE SYNONYM.

Nutzungsoptionen für Cloud-Links verwenden

Sie können die Service-Namenszuordnung für den Zugriff auf Daten aus einer Consumer-Datenbank festlegen. Außerdem können Sie das Caching für einen Dataset-Consumer für die Ergebnisse einer Abfrage oder für ein Abfragefragment aktivieren, das auf Cloud Link-Daten zugreift.

Zuordnung von Datenbankservicenamen für Cloud-Link-Consumer festlegen

Sie können die Servicenamenszuordnung so festlegen, dass sie verwendet wird, wenn Cloud-Links-Consumer auf Daten von einem Dataset-Eigentümer zugreifen.

Cloudlinks hängen von Datenbankressourcen in der Autonomous Database-Instanz ab, bei der es sich um den Dataset-Producer oder die Ressourcen eines aktualisierbaren Klons handelt, um auf gemeinsam verwendete Daten zuzugreifen. Standardmäßig verwendet die Remotekonnektivität für Consumer für den Zugriff auf Cloudlinks-Daten den Datenbankservice MEDIUM.

Verwenden Sie DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING, um die Datenbankservicezuordnung für einen Consumer festzulegen. In diesem Verfahren geben Sie entweder eine Datenbank-ID oder das Schlüsselwort ANY an, um die Consumer Service-Zuordnung anzugeben. Die folgende Abbildung zeigt beispielsweise eine Zuordnung von Consumer A zum HIGH-Service, Consumer B zum MEDIUM-Service, Consumer C zum LOW-Service und eine Zuordnung von ANY zum TP-Service, d.h. alle anderen Consumer greifen über den TP-Service auf Cloud-Links zu.



Weitere Informationen zu den Eigenschaften von Datenbankservices finden Sie unter Datenbankservicenamen für Autonomous Database.

Führen Sie die folgenden Schritte aus, um den Datenbankservice festzulegen, der für einen Cloud Links-Consumer verwendet werden soll:

  1. Rufen Sie die Datenbank-ID für die Datenbank ab, für die Sie ein Service-Mapping festlegen möchten.

    Führen Sie in der Consumer-Datenbank GET_DATABASE_ID aus, um die Datenbank-ID des Consumers abzurufen. Beispiele:

    SELECT DBMS_CLOUD_LINK.GET_DATABASE_ID FROM DUAL:

    Weitere Informationen finden Sie unter Funktion GET_DATABASE_ID.

  2. Geben Sie in der Autonomous Database-Instanz des Dataset-Eigentümers eine Servicezuordnung an.

    Führen Sie diesen Schritt in der Autonomous Database-Instanz des Dataset-Eigentümers (d.h. in der Producer-Datenbank) aus.

    BEGIN
       DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING(
        database_id      => 'database_id', 
        service_name     => 'HIGH');
    END;
    /

    Dabei ist der Parameterwert database_id die Datenbank-ID, die Sie in Schritt 1 erhalten haben.

    Geben Sie den Wert ANY an, damit database_id den angegebenen service_name mit allen Consumer-Datenbanken verwendet, denen kein service_name mit database_id verknüpft ist. Das heißt, jede database_id, deren service_name nicht mit DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING festgelegt wurde.

    Weitere Informationen finden Sie unter Prozedur ADD_SERVICE_MAPPING.

    Nur der ADMIN-Benutzer und die Schemas mit der Rolle PDB_DBA können DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING ausführen.

  3. Prüfen Sie die Datenbank-IDs und die Servicezuordnung, indem Sie die Cloud Links-Servicezuordnungen auflisten.

    Beispiele:

    SELECT * FROM  DBA_CLOUD_LINK_SERVICE_MAPPINGS;

    Weitere Informationen finden Sie unter Ansicht DBA_CLOUD_LINK_SERVICE_MAPPINGS.

Hinweise zum Festlegen und Ändern von Servicezuordnungen:

  • Servicezuordnungen werden wirksam, wenn Verbindungen hergestellt werden. Wenn die Servicezuordnungen eines bestimmten Consumers geändert werden, werden die neuen Zuordnungen nur für neue Sessions vom Consumer wirksam.

  • Jedes Service-Mapping, das in einem Dataset-Eigentümer für einen bestimmten Consumer konfiguriert ist, wird berücksichtigt, selbst wenn der Zugriff vom Consumer auf einen aktualisierbaren Klon ausgelagert wird. Der aktualisierbare Klon muss zu einem Zeitpunkt nach der Konfiguration von Servicezuordnungen im Dataset-Eigentümer aktualisiert werden. Beachten Sie, dass die Auslagerung in einen aktualisierbaren Klon während der Dataset-Registrierung mit dem Argument offload_targets konfiguriert wird.

    Weitere Informationen finden Sie unter Dataset mit Auslagerungszielen für Dataset-Zugriff registrieren.

  • Verwenden Sie die Prozedur DBMS_CLOUD_LINK_ADMIN.REMOVE_SERVICE_MAPPING, um eine Servicezuordnung für eine angegebene database_id zu entfernen.

    Nach der Ausführung von DBMS_CLOUD_LINK_ADMIN.REMOVE_SERVICE_MAPPING verwendet ein Consumer entweder den standardmäßigen MEDIUM-Datenbankservice oder den service_name, den Sie angeben, wenn Sie DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING mit dem database_id-Wert ANY ausführen. Weitere Informationen finden Sie unter Prozedur REMOVE_SERVICE_MAPPING.

Zuordnung von Datenbankservicenamen für Consumer von Cloud-Links in Remoteregion festlegen

Auf ein Dataset, das in einer Quellregion registriert ist, kann von einer Remoteregion aus mit Cloud-Links zugegriffen werden, wenn Sie einen regionsübergreifenden aktualisierbaren Klon in der Remoteregion erstellen.

In diesem Fall müssen die Servicezuordnungen für Consumer in der Remoteregion zweimal hinzugefügt werden, in der Quelldatenbank und im aktualisierbaren Klon in der Remoteregion.

Führen Sie die folgenden Schritte aus, um die Servicemappings für Cloud-Link-Consumer in einer Remoteregion festzulegen.

  1. Erstellen Sie einen regionsübergreifenden aktualisierbaren Klon der Quelldatenbank (der aktualisierbare Klon ist ein Klon des Cloud Links-Dataset-Eigentümers in der Remoteregion).
  2. Registrieren Sie das Dataset.

    Weitere Informationen finden Sie unter Dataset registrieren.

  3. Fügen Sie die Servicezuordnungen für den Dataset-Eigentümer hinzu.
  4. Aktualisieren Sie den aktualisierbaren Klon.

    Weitere Informationen finden Sie unter Aktualisierbaren Klon in Autonomous Database aktualisieren.

  5. Registrieren Sie das Dataset auf dem entfernten aktualisierbaren Klon mit denselben Argumenten, mit denen Sie das Dataset in der Quellregion registriert haben (d.h. verwenden Sie dieselben Argumente, die Sie in Schritt 2 verwendet haben).
  6. Fügen Sie im entfernten aktualisierbaren Klon die Servicezuordnungen mit denselben Argumenten hinzu, die Sie in der Quellregion verwendet haben (d.h. verwenden Sie dieselben Argumente, die Sie in Schritt 3 verwendet haben).

Wenn ein Consumer in der Remoteregion auf Cloud-Verknüpfungsdaten zugreift, verwendet der Zugriff dieselben Servicezuordnungen wie in der Dataset-Eigentümerdatenbank der Quellregion hinzugefügt.

Caching für einen Cloudlink-Consumer aktivieren

Sie können das Caching für einen Dataset-Consumer für die Ergebnisse einer Abfrage oder für ein Abfragefragment aktivieren, das auf Cloud-Linkdaten zugreift.

Um das Caching für einen Dataset-Consumer zu aktivieren, verwenden Sie den Hint RESULT_CACHE mit der Option SHELFLIFE. Mit der Option SHELFLIFE geben Sie einen Wert an, der die Dauer in Sekunden angibt, in der ein Abfrageergebnis gecacht wird. Nachdem das Intervall SHELFLIFE überschritten wurde, wird das gecachte Ergebnis als ungültig markiert. Solange das gecachte Ergebnis gültig ist, ruft eine Abfrage die gecachten Daten aus dem Cache in der Consumer-Datenbank ab. Dadurch wird ein Roundtrip zur Datenbank des Dataset-Eigentümers vermieden.

Verwenden Sie den Hint RESULT_CACHE mit der Option SHELFLIFE, wenn das Dataset statisch ist oder wenn der Consumer veraltete Ergebnisse tolerieren kann. Mit dem Wert SHELFLIFE kann der Cloud Link-Dataset-Consumer die Zeit in Sekunden steuern, in der die Daten im Cache gültig sind (den akzeptablen Veralterungsgrad).

Wenn das Abfrageergebnis groß ist und nicht in den Speicher passt, können Sie den Hint RESULT_CACHE mit der Option SHELFLIFE und der Option TEMP verwenden, um anzugeben, dass das Ergebnis auf den Datenträger im temporären Tablespace geschrieben werden soll.

So cachen Sie Cloud Link-Daten mit dem Hint RESULT_CACHE:

  1. Geben Sie in einer Abfrage den Hint RESULT_CACHE mit der Option SHELFLIFE an.

    Beispiele:

    SELECT /*+ RESULT_CACHE (SHELFLIFE=120) */ * FROM FOREST.TREE_DATA@cloud$link;

    Diese RESULT_CACHE gibt den SHELFLIFE-Wert 120 an. Dies bedeutet, dass das Ergebnis 120 Sekunden lang im Speicher gecacht werden soll. Nach 120 Sekunden wird das gecachte Ergebnis als ungültig markiert.

    Der Wert SHELFLIFE muss eine positive Ganzzahl sein. Der maximale Wert für SHELFLIFE ist 4294967295.

  2. Wenn das Abfrageergebnis groß ist und nicht in den Arbeitsspeicher passt, geben Sie mit den Optionen SHELFLIFE und TEMP an, dass das Ergebnis auf den Datenträger im temporären Tablespace geschrieben werden soll.
    SELECT /*+ RESULT_CACHE (TEMP=true SHELFLIFE=360) */ * FROM FOREST.TREE_DATA@cloud$link;

Weitere Informationen zur Verwendung des Ergebniscaches mit Autonomous Database finden Sie unter RESULT_CACHE_MODE.

Weitere Informationen zu RESULT_CACHE mit SHELFLIFE finden Sie unter RESULT_CACHE-Hinweis.

Informationen zu Prozeduren zum Verwalten des Ergebniscaches und zum Invalidieren von Objekten im Ergebniscache finden Sie unter DBMS_RESULT_CACHE.

Cloud-Links überwachen und anzeigen

Autonomous Database bietet Ansichten, mit denen Sie Cloud-Links überwachen und auditieren können.

Anzeigen Beschreibung
Ansichten V$CLOUD_LINK_ACCESS_STATS und GV$CLOUD_LINK_ACCESS_STATS

Mit dieser Option können Sie den Zugriff auf die einzelnen registrierten Datasets in der Autonomous Database-Instanz verfolgen. Diese Views verfolgen die verstrichene Zeit, die CPU-Zeit, die Anzahl der abgerufenen Zeilen und zusätzliche Informationen zu registrierten Datasets. Mit den Informationen in diesen Ansichten können Sie den Zugriff und die Nutzung von Cloud Links-Datasets prüfen.

Ansichten DBA_CLOUD_LINK_REGISTRATIONS und ALL_CLOUD_LINK_REGISTRATIONS

Hiermit können Sie Details der registrierten Datasets in einer Autonomous Database-Instanz auflisten.

Ansichten DBA_CLOUD_LINK_ACCESS und ALL_CLOUD_LINK_ACCESS

Mit dieser Option können Sie Details zu registrierten Datasets abrufen, auf die eine Datenbank zugreifen kann.

DBA_CLOUD_LINK_AUTHORIZATIONS Ansicht

Bietet Informationen darüber, welche Datenbanken für den Zugriff auf welche Datasets autorisiert sind. Dies gilt für Datasets, bei denen der Parameter auth_required TRUE ist.

Ansichten DBA_CLOUD_LINK_PRIVS und USER_CLOUD_LINK_PRIVS

Bietet Informationen zu den Cloud Link-spezifischen Berechtigungen, REGISTER, READ oder AUTHORIZE, die allen Benutzern oder dem aktuellen Benutzer erteilt wurden.

DBA_CLOUD_LINK_SERVICE_MAPPINGS Ansicht

Zeigt Details aller Servicezuordnungen für Consumer-Datenbanken von Cloudlinks an. Jedes Service-Mapping besteht aus einer Cloud Link-Datenbank-ID und einem Datenbankservice.

Policy für virtuelle private Datenbanken zum Sichern eines registrierten Datasets definieren

Durch die Definition von VPD-Policys (Virtual Private Database) für ein registriertes Dataset können Sie eine feingranulierte Zugriffskontrolle für Cloudlinks bereitstellen, sodass nur eine Teilmenge von Daten (Zeilen) für bestimmte Remotestandorte sichtbar ist.

Oracle Virtual Private Database (VPD) ist ein Sicherheitsfeature, mit dem Sie den Datenzugriff auf Zeilenebene für Benutzer und Anwendungen dynamisch steuern können, indem Sie Filter auf dasselbe Dataset anwenden.

Jeder Benutzer, dem Zugriff auf das Lesen von Cloudlinks erteilt wurde, kann auf registrierte Datasets zugreifen und diese verwenden, wenn er innerhalb des Geltungsbereichs liegt, der bei der Registrierung des Datasets angegeben wurde, und wenn der Parameter für die zusätzliche Autorisierung für das Dataset festgelegt ist, erfolgt der Zugriff über eine autorisierte Datenbank. Jeder Remotezugriff erfolgt im Kontext der Remote-Autonomous Database-Instanz, die auf das registrierte Dataset zugreift (in der Datenbank, in der das Dataset registriert wurde).

Mit der Funktion DBMS_CLOUD_LINK.GET_DATABASE_ID auf dem Remotesystem können Sie die eindeutige ID der Datenbank abrufen. Indem Sie eine VPD-Policy für die Datenbank definieren, in der ein Dataset registriert ist, können Sie jetzt die ID der Remotedatenbank als SYS_CONTEXT-Regel verwenden, um eine feiner granulierte Kontrolle bereitzustellen. Sie können Regeln für Remote-Datenbanken definieren, die auf Ihr registriertes Dataset zugreifen, und den Zugriff über das hinaus begrenzen, was möglich ist, indem Sie einen Cloud-Link-Geltungsbereich angeben.

Beispiel: REGIONAL_SALES.SALES_AGG wird auf Mandantenebene verfügbar gemacht. Wenn Sie den Zugriff auf alle Datenbanken mit Ausnahme einer bestimmten Datenbank einschränken möchten und nur vollständigen Zugriff auf die angegebene Datenbank zulassen möchten, können Sie eine VPD-Policy für das registrierte Dataset hinzufügen.

Beispiele:

  1. Rufen Sie die eindeutige Cloud Link-Datenbank-ID für die Autonomous Database-Instanz ab, auf die Sie vollständigen Zugriff gewähren möchten.
    DECLARE
         DB_ID NUMBER;
     BEGIN
         DB_ID := DBMS_CLOUD_LINK.GET_DATABASE_ID;
         DBMS_OUTPUT.PUT_LINE('Database ID:' || DB_ID);
     END;
     /
  2. Erstellen Sie eine VPD-Policy für die Datenbank, die das Dataset registriert hat, indem Sie nur vollständigen Zugriff auf die eine spezifische Datenbank zulassen, deren ID Sie in Schritt 1 in der betreffenden Datenbank erhalten haben.
    CREATE OR REPLACE FUNCTION vpd_policy_sales(
         owner IN VARCHAR2, 
         object IN VARCHAR2)
         RETURN VARCHAR2 IS
    BEGIN
      IF SYS_CONTEXT('USERENV', 'CLOUD_LINK_DATABASE_ID')  <> '12121212163948244901' THEN
        RETURN 'time_id >= trunc(sysdate,''year'')';  
      ELSE
        RETURN '';
      END IF;
    END;
    /

    Weitere Informationen finden Sie unter DBMS_RLS.

  3. Registrieren Sie die VPD-Policy für das registrierte Dataset, um den vollständigen Zugriff nur auf die in Schritt 1 angegebene Datenbank zu begrenzen.
    
    BEGIN
      DBMS_RLS.ADD_POLICY(object_schema => 'CLOUDLINK',
                object_name => 'SALES_VIEW_AGG',
                policy_name => 'THIS_YEAR',
                function_schema => 'ADMIN',
                policy_function => 'VPD_POLICY_SALES',
                statement_types => 'SELECT',
                policy_type => DBMS_RLS.SHARED_CONTEXT_SENSITIVE);
    END;
    /

    Weitere Informationen finden Sie unter DBMS_RLS.

Weitere Informationen finden Sie unter Datenzugriff mit Oracle Virtual Private Database steuern.

Hinweise zu Cloud-Links

Enthält Hinweise und Einschränkungen für die Verwendung von Cloud-Links.

  • Die Anzahl der Datensätze, die Sie registrieren können, ist auf 4096 begrenzt.

    Jede Autonomous Database-Instanz kann maximal 4096 Datasets registrieren. Dieses Limit gilt für jede Autonomous Database-Instanz, unabhängig von der Anzahl der ECPUs (OCPUs, wenn Ihre Datenbank OCPUs verwendet) oder der Speichergröße der Instanz. Der Grenzwert ist ein fester Wert. Wenn Sie die ECPU-Anzahl auf einen größeren Wert setzen, können Sie keine weiteren Datasets registrieren.

  • Sie können ein Objekt in einem anderen Schema registrieren, wenn Sie über die Berechtigung READ WITH GRANT OPTION für das Objekt verfügen.

  • Um Datasets zu registrieren oder Remote-Datasets anzuzeigen und darauf zuzugreifen, benötigen Sie die entsprechende Berechtigung zum Registrieren oder Lesen von Datasets. Dies gilt auch für ADMIN. ADMIN kann diese Berechtigung jedoch selbst erteilen.

  • Um DBMS_CLOUD_LINK.REGISTER oder DBMS_CLOUD_LINK.UPDATE_REGISTRATION verwenden zu können, benötigen Sie neben der mit DBMS_CLOUD_LINK_ADMIN.GRANT_REGISTER zugewiesenen Registrierungsberechtigung auch die Ausführungsberechtigung für das Package DBMS_CLOUD_LINK. Nur der ADMIN-Benutzer und die Schemas mit PDB_DBA verfügen standardmäßig über diese Berechtigung.

  • Wenn Sie eine registrierte Tabelle löschen und neu erstellen, müssen Sie die Tabelle für den Remotezugriff neu registrieren.

  • Nur der ADMIN-Benutzer und Benutzer mit der Rolle PDB_DBA sind berechtigt, auf die folgenden Ansichten zuzugreifen:

    • DBA_CLOUD_LINK_ACCESS

    • DBA_CLOUD_LINK_REGISTRATIONS

    • DBA_CLOUD_LINK_AUTHORIZATIONS

    • DBA_CLOUD_LINK_PRIVS

    Weitere Informationen finden Sie unter DBMS_CLOUD_LINK-Views.

  • Für den Zugriff auf registrierte Remote-Daten muss die Remote-Datenbank geöffnet sein. Wenn die Remotedatenbank geschlossen ist oder sich im eingeschränkten Modus befindet, können Sie nicht auf die Daten zugreifen, und es wird ein Oracle-Fehler zurückgegeben.

  • Pro Session sind maximal vier offene Datenbanklinks zulässig. Wenn Sie diesen Grenzwert überschreiten, kann dies zu ORA-02020 oder ORA-12545 führen.

  • Wenn der Ergebniscache aktiviert ist, wie das Standardverhalten in Autonomous Database mit Data Warehouse-Workload, müssen Sie sicherstellen, dass der Ergebniscache nicht verwendet wird, wenn Echtzeitdaten erforderlich sind.

  • Wenn Sie Ihren Lizenztyp von "Kostenlos" in "Kostenpflichtig" aktualisieren, müssen Sie die Datensätze für Cloud-Links erneut registrieren. Weitere Informationen finden Sie unter Instanz vom Typ "Immer kostenlos" mit Autonomous Database in kostenpflichtig aktualisieren.

  • Die Remotekonnektivität von Cloudlinks wird standardmäßig vom Datenbankservice MEDIUM verwendet. Sie können den Standardwert mit DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING ändern, indem Sie ANY als Wert für DATABASE_ID verwenden. Sie können den Datenbankservice für einen Consumer mit DBMS_CLOUD_LINK_ADMIN.ADD_SERVICE_MAPPING ändern, indem Sie DATABASE_ID des Consumers angeben. Weitere Informationen finden Sie unter Namenszuordnung für Database Service für Cloud-Link-Consumer festlegen.

    Die Remoteverbindungen werden als Benutzer C##DATA$SHARE in V$SESSION angezeigt, und die Cloud-Links-Ansichten V$CLOUD_LINK_ACCESS_STATS und GV$CLOUD_LINK_ACCESS_STATS enthalten weitere Details zu Remoteverbindungen.

  • Bei allen Schnittstellen muss die Groß-/Kleinschreibung beachtet werden, sofern nicht anders angegeben:

    • Alles, was Sie in der Datenbank eingeben, z.B. Benutzernamen und Tabellennamen, ist von Bedeutung und muss in Großbuchstaben eingegeben werden.
    • Vordefinierte Variablen, z.B. die vordefinierten Geltungsbereichswerte, müssen in Großbuchstaben eingegeben werden.
    • Alles, was Sie für das Setup von Cloud-Links angeben, z.B. Namespaces oder Namen von Tabellen in einem Namespace, muss wie eingegeben angegeben angegeben werden. Beispiel: Wenn Sie einen Namespace als trees definieren, müssen Sie den Namespace beim Zugriff mit SQL in doppelte Anführungszeichen setzen ("trees").
  • Sie können Cloudlinks freigeben, wenn sich ein Dataset auf einer Autonomous Database-Instanz im schreibgeschützten Modus befindet. Weitere Informationen finden Sie unter Cloud-Links aus einer schreibgeschützten Autonomous Database-Instanz verwenden.

  • Es kann bis zu 10 Minuten dauern, nachdem Sie einen aktualisierbaren Klon erstellt haben, damit der aktualisierbare Klon als Auslagerungsziel sichtbar ist. Das bedeutet, dass Sie möglicherweise bis zu 10 Minuten warten müssen, nachdem Sie einen aktualisierbaren Klon erstellt haben, damit der aktualisierbare Klon für die Cloud Links-Offload-Registrierung verfügbar ist.

    Weitere Informationen finden Sie unter Dataset mit Offload-Zielen für Dataset-Zugriff registrieren und Aktualisierbaren Klon für eine Autonomous Database-Instanz erstellen.

Cloud-Links aus einer schreibgeschützten Autonomous Database-Instanz verwenden

Sie können Cloudlinks freigeben, wenn sich ein Dataset auf einer schreibgeschützten Autonomous Database-Instanz befindet.

So geben Sie Cloudlinks von einer Autonomous Database-Instanz im schreibgeschützten Modus frei:
  1. Ändern Sie den Datenbankmodus in "Lesen/Schreiben".
  2. Führen Sie die Schritte zum Registrieren eines Datasets aus, wenn sich die Datenbank im Lese-/Schreibmodus befindet.
    1. Zugriff auf Cloud-Links für Datenbankbenutzer erteilen
    2. Dataset registrieren oder Registrierung aufheben
  3. Nachdem Sie ein oder mehrere Datasets registriert haben, ändern Sie die Datenbank in den schreibgeschützten Modus.