Föderierte Tabellen mit Tabellen-Hyperlinks durch Definieren des Geltungsbereichs erstellen

Sie können eine föderierte Tabelle über einen Hyperlink für autonome KI-Datenbanktabellen erstellen. Eine föderierte Tabelle ist eine externe Tabelle, die in Tabellen-Hyperlinks definiert ist. Es ermöglicht die Aggregation von Daten aus mehreren autonomen KI-Datenbanken.

Obwohl eine föderierte Tabelle denselben Hyperlinkmechanismus wie eine externe Tabelle verwendet, unterscheidet sich der Erstellungsworkflow. Bei externen Tabellen erstellt und teilt der Provider Tabellen-Hyperlinks, und jeder Consumer verwendet diese Hyperlinks, um externe Tabellen zu definieren. Bei föderierten Tabellen initiiert der Consumer die Erstellung der Tabelle, und Tabellen-Hyperlinks werden automatisch in der Provider-Datenbank erstellt, sofern der Consumer innerhalb des vom Provider definierten Geltungsbereichs liegt.

Als Provider können Sie Geltungsbereiche in Ihrer Datenbank definieren, um Consumern die Berechtigung zum automatischen Erstellen von Tabellen-Hyperlinks zu erteilen. Die autorisierten Consumers innerhalb dieser Geltungsbereiche können föderierte Tabellen erstellen und Daten aus mehreren Quelldatenbanken ohne manuellen Linkaustausch abfragen.

Die wichtigsten Vorteile der Definition von Geltungsbereichen zum Erstellen von Tabellen-Hyperlinks sind:
  • Vereinfachte Datenfreigabe - Die Consumer können jetzt die Erstellung externer Tabellen separat initiieren und Tabellenhyperlinks erstellen, wenn sie zu einem autorisierten Geltungsbereich gehören.
  • Verbesserte Sicherheit - Beseitigt unsichere Tabellen-Hyperlink-(URL-)Verteilungsmethoden.
  • Data Federation: Verbraucher können Daten aus mehreren Providerdatenbanken über föderierte Tabellen aggregieren.

In den folgenden Abschnitten wird der detaillierte Workflow beschrieben, wie die autonomen Provider- und Consumer-Datenbanken föderierte Tabellen erstellen, indem Geltungsbereiche in einem praktischen Beispielanwendungsfall definiert werden. Dieser Workflow und die zugehörigen Codebeispiele können entsprechend Ihren Anforderungen geändert und implementiert werden.

Workflow zum Erstellen föderierter Tabellen

Der folgende Workflow ist für die autonome KI-Datenbank des Providers und die autonome KI-Datenbank des Verbrauchers verantwortlich.

Vom Provider aus besteht der erste Schritt darin, einen Erstellungsgeltungsbereich zu definieren, der angibt, welche autonomen AI-Consumer-Datenbanken Tabellen-Hyperlinks im Provider remote erstellen dürfen. Der Geltungsbereich kann auf Schema- oder Objektebene festgelegt werden.

Als Nächstes steuert der Provider-DBA, wer Geltungsbereiche verwalten kann, indem er DBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER für ausgewählte Benutzer aufruft. Diese privilegierten Benutzer können mit DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE, UPDATE_CREATION_SCOPE und UNREGISTER_CREATION_SCOPE Geltungsbereiche für bestimmte Tabellen oder Schemas registrieren, ändern oder entfernen und mit LIST_CREATION_SCOPES die aktuelle Konfiguration prüfen. Wenn ein Consumer später einen Hyperlink anfordert, prüft der Provider, ob die anfordernde autonome KI-Datenbank des Consumers mit dem registrierten Geltungsbereich übereinstimmt, bevor die URL-Generierung zugelassen wird. Dadurch wird sichergestellt, dass nur berechtigte Consumer Hyperlinks in Providerdaten erstellen können.

Aus Consumer-Sicht wird der Workflow gestartet, sobald der Provider Geltungsbereiche definiert hat, die die Consumer-Datenbank enthalten. Der Consumer-DBA erteilt bestimmten Benutzern die Berechtigung, föderierte Tabellen über Providerdaten zu erstellen, indem er DBMS_DATA_ACCESS_ADMIN.GRANT_READ aufruft.

Ein Consumer kann dann DBMS_DATA_ACCESS.CREATE_FEDERATED_TABLE aufrufen, um Tabellen-Hyperlinks in der Datenbank des Providers im Namen des Consumers zu erstellen. Die resultierende föderierte Tabelle im Consumer kann dann die Producer-Daten abfragen, als wäre es eine lokale externe Tabelle.

Wenn der föderierte Zugriff nicht mehr erforderlich ist, bereinigt der Consumer, indem er DBMS_DATA_ACCESS.DROP_FEDERATED_TABLE aufruft. Dadurch wird das föderierte Tabellenobjekt im Consumer entfernt, während die Geltungsbereiche des Providers intakt bleiben.

Betrachten Sie ein Unternehmen, das Oracle Autonomous AI Database-Instanzen verwendet, bei denen eine autonome KI-Datenbank eines zentralen Anbieters gemeinsame Stammdaten enthält, und autonome KI-Datenbanken von Verbrauchern von Abteilungen einen Analysezugriff benötigen, ohne dass Daten dupliziert oder Tickets unterstützt werden. Die Business Analysts in der Analytics-Abteilung erfordern die Selfservice-Erstellung externer Tabellen über Providerdaten, um Berichte schneller auszuführen und gleichzeitig die Governance über vom Provider definierte Geltungsbereiche aufrechtzuerhalten. Sie haben folgende Anforderungen erfüllt:
  1. Der ADMIN (Provider) erteilt dem Dateneigentümer mit der Prozedur DBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER die Berechtigung zur Geltungsbereichsregistrierung.
    BEGIN
    DBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER(
    username => 'DATA_OWNER',
    scope => 'MY$COMPARTMENT'
    );
    END;
    /
  2. Erteilen Sie dem Dateneigentümer (DATA_OWNER) als ADMIN Ausführungsberechtigungen.
    grant execute on DBMS_DATA_ACCESS_SCOPE to DATA_OWNER;
  3. Der Dateneigentümer registriert den Erstellungsgeltungsbereich für ein gemeinsam verwendetes Schema oder Objekt in der autonomen KI-Providerdatenbank mit der Prozedur DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE. Dadurch werden autonome KI-Verbraucherdatenbanken im selben Compartment autorisiert, Tabellenhyperlinks remote zu erstellen.
    BEGIN
    DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE(
    schema_name => 'DATA_OWNER',
    schema_object_name => 'SALES_DATA',
    scope => 'MY$COMPARTMENT'
    );
    END;
    /
  4. Consumer ADMIN erteilt Business Analyst mit der Prozedur DBMS_DATA_ACCESS_ADMIN.GRANT_READ Leseberechtigung.

    Dadurch wird sichergestellt, dass der Analyst die Erstellung einer föderierten Tabelle initiieren kann.

  5. Consumer ADMIN erteilt dem Benutzer bi_analyst Ausführungsberechtigungen.
    grant execute on DBMS_DATA_ACCESS to bi_analyst;
  6. Business Analyst erstellt eine föderierte externe Tabelle in der autonomen KI-Datenbank des Verbrauchers mit der Prozedur DBMS_DATA_ACCESS.CREATE_FEDERATED_TABLE. Dadurch wird der Tabellen-Hyperlink automatisch generiert, wenn der Geltungsbereich dort übereinstimmt, wo kein Mitarbeitereingriff erforderlich ist.

    BEGIN
    DBMS_DATA_ACCESS.CREATE_FEDERATED_TABLE(
    table_name => 'DEPT_SALES_XT',
    remote_schema_name => 'SHARED_SCHEMA',
    remote_schema_object_name => 'SALES_DATA',
    db_ocids => '[{"region": "IAD", "db_ocid": "OCID1.AUTONOMOUSDATABASE.OC1.IAD.EXAMPLE123"}]'
    );
    END;
    /
    Hinweis

    Die Datenbank-OCID (db_ocid) muss in Großbuchstaben angegeben werden.
  7. Der Analyst fragt die externe Tabelle für Abteilungsanalysen ab:
    SELECT * FROM DEPT_SALES_XT WHERE region = 'West';
Hinweis

Die oben genannten Codebeispiele können entsprechend Ihren Anforderungen geändert und implementiert werden.

Weitere Informationen zu den oben genannten Funktionen und Parametern finden Sie unter DBMS_DATA_ACCESS_SCOPE Package, DBMS_DATA_ACCESS_ADMIN Package und DBMS_DATA_ACCESS Package.

In der folgenden Tabelle sind die Vorgänge aufgeführt, die am Workflow für die Erstellung von föderierten Tabellen beteiligt sind, indem der Geltungsbereich zusammen mit den zugehörigen Beschreibungen festgelegt wird:
Arbeitsvorgang Beschreibung Benutzer, der diesen Vorgang ausführt
Erstellungsumfang definieren Definiert, welche Datenbanken Tabellenhyperlinks in einer autonomen KI-Datenbankinstanz des Providers remote erstellen dürfen. Weitere Informationen finden Sie unter Erstellungsumfang. Provider
"Registrieren" erteilen

Erteilt, welche Benutzer in einer autonomen KI-Datenbankinstanz des Providers den Geltungsbereich registrieren oder aktualisieren dürfen.

Weitere Informationen finden Sie unter Registrierung erteilen.

Provider
Registrierungserstellungsumfang

Definiert, welche Datenbankobjekte Tabellen-Hyperlinks unter einem bestimmten Autorisierungsbereich erstellen können.

Weitere Informationen finden Sie unter Erstellungsumfang registrieren.

Provider
Erstellungsumfang aktualisieren Ändert den vorhandenen Erstellungsumfang. Weitere Informationen finden Sie unter Erstellungsumfang aktualisieren. Provider
Registrierung des Erstellungsbereichs aufheben Entfernt zuvor registrierte Einstellungen für den Erstellungsbereich für ein Schema, ein einzelnes Objekt oder eine Liste von Objekten. Weitere Informationen finden Sie unter Erstellungsumfang für Registrierung aufheben. Provider
Erstellungsumfang abrufen Fragt registrierte Erstellungsbereiche für angegebene Schemas oder Objekte ab und ruft sie ab. Weitere Informationen finden Sie unter Bereiche für Listenerstellung. Provider
Föderierte Tabelle erstellen Erstellt eine Verbundtabelle. Weitere Informationen finden Sie unter Federierte Tabelle erstellen. Verbraucher
Lesen gewähren Erteilt einem Consumer-Benutzer Leseberechtigungen für Remoteschemas oder Objekte, sodass föderierte Tabellen erstellt werden können. Weitere Informationen finden Sie unter Lesezugriff erteilen. Verbraucher
Lesen entziehen Entzieht eine zuvor erteilte Leseberechtigung zum Erstellen einer föderierten Tabelle. Weitere Informationen finden Sie unter Lesevorgang widerrufen. Verbraucher
Föderierte Tabelle löschen Entfernt angegebene föderierte Tabellen aus der Datenbank. Weitere Informationen finden Sie unter Federierte Tabelle löschen. Verbraucher

Erstellungsumfang

Ein Erstellungsgeltungsbereich in einer Providerdatenbank bestimmt, welche autonomen KI-Consumer-Datenbankinstanzen Tabellen-Hyperlinks remote in der Providerdatenbank erstellen dürfen.

Der Geltungsbereich kann auf mehreren Ebenen definiert werden:
  • Mandantenbasiert (MY$TENANCY) - Jede Datenbank im selben Mandanten wie die Providerdatenbank.
  • Compartment-basiert (MY$COMPARTMENT) - Jede Datenbank im selben Compartment wie die Providerdatenbank.
  • Objektebene: Bestimmte Tabellen oder Views in einem Schema.
  • Schemaebene: Alle Objekte in einem bestimmten Schema.

Sie können Erstellungsbereiche mit dem Package DBMS_DATA_ACCESS_SCOPE verwalten, das Prozeduren zum Registrieren, Aufheben der Registrierung, Aktualisieren und Abrufen von Geltungsbereichen bereitstellt. Weitere Informationen finden Sie unter DBMS_DATA_ACCESS_SCOPE.

"Registrieren" erteilen

Die ADMIN (oder PDB_DBA) in der autonomen KI-Providerdatenbank verwendet die DBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER, um zu entscheiden, welche lokalen Benutzer Erstellungsbereiche verwalten dürfen.

Nur diese privilegierten Benutzer können Geltungsbereiche registrieren, aktualisieren oder die Registrierung aufheben, um eine unkontrollierte Anzeige von Providertabellen zu verhindern.

Beispiel

BEGIN
DBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER(
username => 'ANALYTICS_ADMIN',
scope => 'MY$COMPARTMENT'
);
END;
/

Im obigen Beispiel wird dem ANALYTICS_ADMIN-Benutzer die Berechtigung erteilt, Datasets im Geltungsbereich MY$COMPARTMENT zu registrieren.

Syntaxreferenz finden Sie unter GRANT_REGISTER.

Registrierungserstellungsumfang

Ein Provider ruft DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE auf, um den zulässigen Geltungsbereich für bestimmte Tabellen oder ganze Schemas zu registrieren, um Tabellen-Hyperlinks in diese Objekte zu erstellen.

Beispiel: Geltungsbereich auf Schemaebene registrieren
BEGIN
DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE(
schema_name => 'ANALYTICS',
schema_object_name => 'NULL',
scope => 'MY$COMPARTMENT'
);
END;
/

In diesem Beispiel wird ein Datenzugriffsgeltungsbereich auf Schemaebene für das Schema ANALYTICS registriert und mit dem Compartment MY$COMPARTMENT verknüpft.

Beispiel: Geltungsbereich auf Objektebene registrieren

BEGIN
DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE(
schema_name => 'ANALYTICS',
schema_object_name => 'SALES_DATA',
scope => 'MY$TENANCY'
);
END;
/

In diesem Beispiel wird ein gezielterer Datenzugriffsgeltungsbereich für ein bestimmtes Objekt SALES_DATA innerhalb des Schemas ANALYTICS registriert und mit dem Mandanten MY$TENANCY verknüpft. Im Gegensatz zur Version auf Schemaebene begrenzt schema_object_name die Durchsetzung nur auf diese Tabelle, wodurch eine granulare Kontrolle über die Erstellungsberechtigungen ermöglicht wird.

Beispiel: Mehrere Objekte registrieren
BEGIN
DBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPE(
schema_name => 'ANALYTICS',
schema_object_list => '["SALES_DATA", "CUSTOMER_DATA", "PRODUCT_DATA"]',
scope => 'MY$COMPARTMENT'
);
END;
/

Diese Prozedur verknüpft die aufgelisteten Schemaobjekte SALES_DATA, CUSTOMER_DATA und PRODUCT_DATA mit dem Geltungsbereich MY$COMPARTMENT und schränkt die Erstellung oder den Zugriff auf Entitys in diesem Compartment ein.

Syntaxreferenz finden Sie unter Erstellungsgeltungsbereich registrieren.

Erstellungsumfang aktualisieren

Wenn ein Provider den Zugriff ändern muss, ruft derselbe oder ein anderer autorisierter Benutzer UPDATE_CREATION_SCOPE auf, um zu erweitern, einzuschränken oder anderweitig anzupassen, welche autonomen KI-Verbraucherdatenbanken Hyperlinks für bestimmte Schemaobjekte erstellen können.

Beispiel
BEGIN
DBMS_DATA_ACCESS_SCOPE.UPDATE_CREATION_SCOPE(
schema_name => 'ANALYTICS',
schema_object_name => 'SALES_DATA',
scope => 'MY$COMPARTMENT'
);
END;
/

In diesem Beispiel wird der Erstellungsgeltungsbereich für die Tabelle SALES_DATA im Schema ANALYTICS in MY$COMPARTMENT aktualisiert.

Syntaxreferenz finden Sie unter Erstellungsgeltungsbereich aktualisieren.

Registrierung des Erstellungsbereichs aufheben

Wenn ein Provider die Remote-Erstellungsfunktion vollständig entziehen möchte (für eine Tabelle, eine Tabellenliste oder ein Schema), ruft der Provider UNREGISTER_CREATION_SCOPE auf. Dadurch wird der registrierte Geltungsbereich entfernt und verhindert, dass neue Tabellen-Hyperlinks für diese Objekte von Consumer-Datenbanken erstellt werden.

Beispiel
BEGIN
DBMS_DATA_ACCESS_SCOPE.UNREGISTER_CREATION_SCOPE(
schema_name => 'ANALYTICS',
schema_object_name => 'SALES_DATA'
);
END;
/

Dieser Beispielblock entfernt einen zuvor registrierten Erstellungsgeltungsbereich für SALES_DATA im Schema ANALYTICS, sodass neue Objekte, die unter diesem Geltungsbereich erstellt wurden, nicht mehr von den Datenzugriffskontrollen des erzwungenen Geltungsbereichs gesteuert werden.

Syntaxreferenz finden Sie unter Erstellungsgeltungsbereich für Registrierung aufheben.

Erstellungsbereiche abrufen

Ein autorisierter Benutzer kann jederzeit LIST_CREATION_SCOPES aufrufen, um aktuelle Geltungsbereichsdefinitionen abzurufen.

Beispiel
DECLARE
l_result CLOB;
BEGIN
DBMS_DATA_ACCESS_SCOPE.LIST_CREATION_SCOPES(
schema_name => 'ANALYTICS',
result => l_result
);
DBMS_OUTPUT.PUT_LINE(l_result);
END;
/

Syntaxreferenz finden Sie unter Erstellungsgeltungsbereich abrufen.

Lesen gewähren

In der autonomen KI-Datenbank des Verbrauchers verwendet ADMIN (oder PDB_DBA) DBMS_DATA_ACCESS_ADMIN.GRANT_READ, um bestimmten Benutzern das Recht zu erteilen, föderierte Tabellen für Remoteproviderschemas oder -objekte zu erstellen.

Beispiel: Zugriff auf ein bestimmtes Remoteobjekt erteilen

BEGIN
DBMS_DATA_ACCESS_ADMIN.GRANT_READ(
username => 'BI_ANALYST',
remote_schema_name => 'ANALYTICS',
remote_schema_object_name => 'SALES_DATA'
);
END;
/

In diesem Beispiel wird dem Benutzer BI_ANALYST Lesezugriff auf das spezifische Remoteobjekt SALES_DATA im Schema ANALYTICS eines externen Datenproviders erteilt.

Syntaxreferenz finden Sie unter Lesezugriff erteilen.

Lesen entziehen

Mit der Prozedur REVOKE_READ wird die Berechtigung eines Benutzers zum Erstellen föderierter Tabellen über ein angegebenes Remoteschema oder Schemaobjekt in der Providerdatenbank entfernt.

Wenn Sie den Remote-Objektnamen auslassen, entzieht er dem föderierten Tabellenzugriff dieses Benutzers für alle Objekte im angegebenen Remoteschema.

Beispiel

BEGIN
DBMS_DATA_ACCESS_ADMIN.REVOKE_READ(
username => 'BI_ANALYST',
remote_schema_name => 'ANALYTICS',
remote_schema_object_name => 'SALES_DATA'
);
END;
/

Syntaxreferenz finden Sie unter Lesevorgang widerrufen.

Föderierte Tabelle erstellen

Ein Consumer-Benutzer, dem Leseberechtigungen erteilt wurden, ruft DBMS_DATA_ACCESS.CREATE_FEDERATED_TABLE auf, um eine föderierte Tabelle über die In-Scope-Tabelle oder -View des Providers zu erstellen.

Die Prozedur verwendet Datenbank-OCIDs und Regionsinformationen, um Tabellen-Hyperlinks einzurichten, damit der Consumer Remote-Daten abfragen kann, als wäre es eine lokale externe Tabelle.

Voraussetzungen

  • Dem Benutzer müssen Leseberechtigungen über die Prozedur GRANT_READ erteilt werden.
  • Benutzer muss sowohl in Consumer- als auch in Providerdatenbanken mit erforderlichen Berechtigungen vorhanden sein.
  • Consumer-Datenbank muss zum Erstellungsbereich des Providers gehören.
  • Der Provider muss einen registrierten Erstellungsgeltungsbereich für Zielobjekte haben.
  • Netzwerkkonnektivität zwischen Consumer- und Providerdatenbanken hergestellt.

Beispiel: Einzelner Provider

BEGIN
DBMS_DATA_ACCESS.CREATE_FEDERATED_TABLE(
table_name => 'SALES_FED',
remote_schema_name => 'ANALYTICS',
remote_schema_object_name => 'SALES_DATA',
db_ocids => '[{"region": "IAD", "db_ocid": "OCID1.AUTONOMOUSDATABASE.OC1.IAD.EXAMPLE123"}]'
);
END;
/

Im obigen Beispiel ruft ein Consumer DBMS_DATA_ACCESS.CREATE_FEDERATED_TABLE auf, um eine lokale föderierte Tabelle zu erstellen, die mit der Tabelle oder View eines Remoteproviders verknüpft ist (z.B. SALES_DATA im Schema ANALYTICS), wobei JSON db_ocids verwendet wird, um Providerdatenbank OCIDs und Regionen für nahtlose Abfragen als lokal anzugeben.

Nachdem ein Consumer eine föderierte Tabelle erstellt hat. Sie können wie normale externe Tabellen abgefragt werden:
SELECT
REGION,
PRODUCT_ID,
SUM(SALES_AMOUNT) as total_sales,
COUNT(*) as transaction_count
FROM SALES_FED
GROUP BY REGION, PRODUCT_ID
ORDER BY total_sales DESC;

Syntaxreferenz finden Sie unter Federierte Tabelle erstellen.

Föderierte Tabelle löschen

Wenn der föderierte Zugriff nicht mehr erforderlich ist, ruft der Consumer-Benutzer DBMS_DATA_ACCESS.DROP_FEDERATED_TABLE auf, um die föderierte Tabelle zu entfernen.

Diese Prozedur bereinigt das Consumer-seitige Objekt und beendet effektiv den jeweiligen föderierten Zugriffspfad, während die zugrunde liegenden Providergeltungsbereiche und Berechtigungen unter Providerkontrolle bleiben.

BEGIN
DBMS_DATA_ACCESS.DROP_FEDERATED_TABLE(
table_name => 'SALES_FED'
);
END;
/

Im obigen Beispiel wird die Tabelle SALES_FED gelöscht.

Syntaxreferenz finden Sie unter Federierte Tabelle löschen.

Szenarios bei der Fehlerbehebung

In diesem Abschnitt erhalten Sie Anweisungen zu den möglichen Fehlertypen und zur Behebung von Problemen.

  1. Consumer-Datenbank nicht im Geltungsbereich

    Problemfall: Der Consumer erhält beim Versuch, föderierte Tabellen zu erstellen, einen Autorisierungsfehler.

    Lösung

    • Prüfen Sie, ob die Consumer-Datenbank-ID mit den Geltungsbereichskriterien des Providers übereinstimmt.
    • Vergewissern Sie sich, dass dem Benutzer Leseberechtigungen über die Prozedur GRANT_READ erteilt wurden.
    • Prüfen Sie, ob der Provider den entsprechenden Erstellungsbereich mit der Prozedur REGISTER_CREATION_SCOPE registriert hat.
    • Prüfen Sie die Netzwerkkonnektivität zwischen Consumer- und Provider-Brokern.
    • Status der Datenbankregistrierung in der OCI-Konsole bestätigen.
  2. Erstellung der föderierten Tabelle nicht erfolgreich

    Problemfall: Die Prozedur CREATE_FEDERATED_TABLE verläuft trotz Erfüllung der Voraussetzungen nicht erfolgreich.

    Lösung
    • Prüfen Sie, ob der Benutzer sowohl in Consumer- als auch in Providerdatenbanken vorhanden ist.
    • Vergewissern Sie sich, dass der Benutzer über die Objektverantwortung oder die Berechtigung GRANT OPTION für Remoteobjekte verfügt.
    • Prüfen Sie, ob die Remote-Schema- und Objektnamen korrekt sind (Groß-/Kleinschreibung beachten).
    • Prüfen Sie, ob db_ocids JSON gültige Regionscodes und Datenbank-OCIDs enthält.
    • Stellen Sie sicher, dass der Providergeltungsbereich aktiviert ist und die Consumer-Datenbank enthält.
    • Broker-Kommunikationsprotokolle auf Fehler prüfen.
  3. Autorisierungsfehler

    Problemfall: Benutzer können keine Geltungsbereiche registrieren oder auf föderierte Tabellen zugreifen.

    Lösung

    • Prüfen Sie, ob dem Benutzer die Berechtigung REGISTER mit der Prozedur GRANT_REGISTER (providerseitig) erteilt wurde.
    • Vergewissern Sie sich, dass dem Benutzer die Berechtigung READ mit der Option GRANT_READ (konsumseitig) erteilt wurde.
    • Bestätigen Sie für Vorgänge auf Objektebene, dass der Benutzer Eigentümer des Objekts ist, oder verfügen Sie über die Optionsberechtigung GRANT.
    • Bei Vorgängen auf Schemaebene bestätigen Sie, dass der Benutzer die Rolle ADMIN oder PDB_DBA hat.
    • Prüfen Sie die Berechtigungssperrhistorie, um sicherzustellen, dass Berechtigungen nicht explizit entzogen wurden.