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.
- 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. - Szenarios zur Fehlerbehebung
Dieser Abschnitt enthält Anweisungen zu den möglichen Fehlertypen und zur Fehlerbehebung.
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.
- Der
ADMIN(Provider) erteilt dem Dateneigentümer mit der ProzedurDBMS_DATA_ACCESS_ADMIN.GRANT_REGISTERdie Berechtigung zur Geltungsbereichsregistrierung.BEGIN DBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER( username => 'DATA_OWNER', scope => 'MY$COMPARTMENT' ); END; / - Erteilen Sie dem Dateneigentümer (DATA_OWNER) als
ADMINAusführungsberechtigungen.grant execute on DBMS_DATA_ACCESS_SCOPE to DATA_OWNER; - 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; / -
Consumer
ADMINerteilt Business Analyst mit der ProzedurDBMS_DATA_ACCESS_ADMIN.GRANT_READLeseberechtigung.Dadurch wird sichergestellt, dass der Analyst die Erstellung einer föderierten Tabelle initiieren kann.
- Consumer
ADMINerteilt dem Benutzer bi_analyst Ausführungsberechtigungen.grant execute on DBMS_DATA_ACCESS to bi_analyst; -
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. - Der Analyst fragt die externe Tabelle für Abteilungsanalysen ab:
SELECT * FROM DEPT_SALES_XT WHERE region = 'West';
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.
| 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 |
- Erstellungsgeltungsbereich
Ein Erstellungsgeltungsbereich in einer Providerdatenbank bestimmt, welche autonomen KI-Consumer-Datenbankinstanzen Tabellenhyperlinks remote in der Providerdatenbank erstellen dürfen. - Registrierung erteilen
DieADMIN(oderPDB_DBA) in der autonomen KI-Providerdatenbank verwendet dieDBMS_DATA_ACCESS_ADMIN.GRANT_REGISTER, um zu entscheiden, welche lokalen Benutzer Erstellungsbereiche verwalten dürfen. - Erstellungsumfang registrieren
Ein Provider ruftDBMS_DATA_ACCESS_SCOPE.REGISTER_CREATION_SCOPEauf, um den zulässigen Geltungsbereich für bestimmte Tabellen oder ganze Schemas zu registrieren und Tabellen-Hyperlinks in diese Objekte zu erstellen. - Erstellungsumfang aktualisieren
Wenn ein Provider den Zugriff ändern muss, ruft derselbe oder ein anderer autorisierter BenutzerUPDATE_CREATION_SCOPEauf, um zu erweitern, einzuschränken oder anderweitig anzupassen, welche autonomen KI-Consumer-Datenbanken Hyperlinks für bestimmte Schemaobjekte erstellen können. - Registrierung des Erstellungsumfangs aufheben
Wenn ein Provider die Remoteerstellungsfunktion vollständig entziehen möchte (für eine Tabelle, eine Tabellenliste oder ein Schema), ruft der ProviderUNREGISTER_CREATION_SCOPEauf. Dadurch wird der registrierte Geltungsbereich entfernt und verhindert, dass neue Tabellen-Hyperlinks für diese Objekte von Consumer-Datenbanken erstellt werden. - Erstellungsgeltungsbereiche abrufen
Ein autorisierter Benutzer kann jederzeitLIST_CREATION_SCOPESaufrufen, um aktuelle Geltungsbereichsdefinitionen abzurufen. - Lesezugriff erteilen
In der autonomen KI-Datenbank des Verbrauchers verwendetADMIN(oderPDB_DBA)DBMS_DATA_ACCESS_ADMIN.GRANT_READ, um bestimmten Benutzern das Recht zu erteilen, föderierte Tabellen für Remoteproviderschemas oder -objekte zu erstellen. - Lesevorgang widerrufen
Mit der ProzedurREVOKE_READwird die Berechtigung eines Benutzers zum Erstellen föderierter Tabellen über ein angegebenes Remoteschema oder Schemaobjekt in der Providerdatenbank entfernt. - Föderierte Tabelle erstellen
Ein Consumer-Benutzer, dem Leseberechtigungen erteilt wurden, ruftDBMS_DATA_ACCESS.CREATE_FEDERATED_TABLEauf, um eine föderierte Tabelle über die Tabelle oder View im Geltungsbereich des Providers zu erstellen. - Föderierte Tabelle löschen
Wenn der föderierte Zugriff nicht mehr erforderlich ist, ruft der Consumer-BenutzerDBMS_DATA_ACCESS.DROP_FEDERATED_TABLEauf, um die föderierte Tabelle zu entfernen.
Erstellungsumfang
Ein Erstellungsgeltungsbereich in einer Providerdatenbank bestimmt, welche autonomen KI-Consumer-Datenbankinstanzen Tabellen-Hyperlinks remote in der Providerdatenbank erstellen dürfen.
- 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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
"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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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.
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.
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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.
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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.
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
Erstellungsbereiche abrufen
Ein autorisierter Benutzer kann jederzeit LIST_CREATION_SCOPES aufrufen, um aktuelle Geltungsbereichsdefinitionen abzurufen.
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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_READerteilt 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.
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
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.
Übergeordnetes Thema: Workflow zum Erstellen föderierter Tabellen
Szenarios bei der Fehlerbehebung
In diesem Abschnitt erhalten Sie Anweisungen zu den möglichen Fehlertypen und zur Behebung von Problemen.
-
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_READerteilt wurden. - Prüfen Sie, ob der Provider den entsprechenden Erstellungsbereich mit der Prozedur
REGISTER_CREATION_SCOPEregistriert hat. - Prüfen Sie die Netzwerkkonnektivität zwischen Consumer- und Provider-Brokern.
- Status der Datenbankregistrierung in der OCI-Konsole bestätigen.
-
Erstellung der föderierten Tabelle nicht erfolgreich
Problemfall: Die Prozedur
CREATE_FEDERATED_TABLEverlä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 OPTIONfür Remoteobjekte verfügt. - Prüfen Sie, ob die Remote-Schema- und Objektnamen korrekt sind (Groß-/Kleinschreibung beachten).
- Prüfen Sie, ob
db_ocidsJSON 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.
-
Autorisierungsfehler
Problemfall: Benutzer können keine Geltungsbereiche registrieren oder auf föderierte Tabellen zugreifen.
Lösung
- Prüfen Sie, ob dem Benutzer die Berechtigung
REGISTERmit der ProzedurGRANT_REGISTER(providerseitig) erteilt wurde. - Vergewissern Sie sich, dass dem Benutzer die Berechtigung
READmit der OptionGRANT_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
ADMINoderPDB_DBAhat. - Prüfen Sie die Berechtigungssperrhistorie, um sicherzustellen, dass Berechtigungen nicht explizit entzogen wurden.
- Prüfen Sie, ob dem Benutzer die Berechtigung