Tabellen-Hyperlinks erstellen, verwalten und überwachen
Zeigt die Schritte zum Erstellen, Verwalten und Überwachen von Tabellen-Hyperlinks an.
Tabellen-Hyperlink für eine Tabelle bzw. View erstellen
Zeigt die Schritte zum Erstellen eines Tabellen-Hyperlinks an, mit denen Sie den Zugriff für ein Schemaobjekt (Tabelle oder View) freigeben können.
Wenn ein Tabellen-Hyperlink ausgeführt wird, verwendet er die Berechtigungen, die dem Datenbankbenutzer erteilt wurden, der den Tabellen-Hyperlink generiert. Der Benutzer, der einen Tabellen-Hyperlink generiert, muss über die Mindestberechtigungen verfügen, die für den Zugriff auf die Daten erforderlich sind. Um die Sicherheit aufrechtzuerhalten, empfiehlt Oracle, DBMS_DATA_ACCESS.CREATE_URL nicht als ADMIN-Benutzer auszuführen.
So verwenden Sie einen Tabellen-Hyperlink, um den Zugriff auf Daten als Schemaobjekt (Tabelle oder View) bereitzustellen:
-
Geben Sie die Tabelle oder View an, die Sie gemeinsam verwenden möchten.
Wenn es Einschränkungen für die Daten gibt, die Sie verfügbar machen möchten, verwenden Sie den Parameter
application_user_id, wenn Sie den Tabellen-Hyperlink generieren, und erstellen Sie eine VPD-Policy, um die Daten einzuschränken, die Sie bereitstellen. Weitere Informationen finden Sie unter Policy für virtuelle private Datenbanken zum Sichern von Tabellen-Hyperlinkdaten definieren. -
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink zu generieren.DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'SCOTT', schema_object_name => 'TREE_DATA', expiration_minutes => 360, result => status); dbms_output.put_line(status); END; /Der Parameter
expiration_minutesgibt an, dass der Tabellen-Hyperlink abläuft und nach 360 Minuten invalidiert wird.Weitere Informationen finden Sie unter Prozedur CREATE_URL.
-
Prüfen Sie das Ergebnis.
In diesem Beispiel enthält
statusdas Ergebnis, das Informationen zum Tabellen-Hyperlink enthält.{ "status" : "SUCCESS", "id" : "wPY0uxyx-gioxOndiKVlqVF585xqJs14CIp9M1qHd-m8bqJi-QCahwfwGesG", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/Y0uxyx-gioxOndiKVlqVF585xqJs14CIp9M1qHhVJUCWm5OEG3fNq2m0HCjaMt8s/data", "expiration_ts" : "2025-08-12T04:30:41.484Z" }
Tabellen-Hyperlink mit einer Select-Anweisung erstellen
Zeigt die Schritte zum Erstellen eines Tabellen-Hyperlinks an, der den Zugriff auf Daten mit einer SQL-Abfrageanweisung ermöglicht.
Wenn ein Tabellen-Hyperlink ausgeführt wird, verwendet er die Berechtigungen, die dem Datenbankbenutzer erteilt wurden, der den Tabellen-Hyperlink generiert. Der Benutzer, der einen Tabellen-Hyperlink generiert, muss über die Mindestberechtigungen verfügen, die für den Zugriff auf die Daten erforderlich sind. Um die Sicherheit aufrechtzuerhalten, empfiehlt Oracle, DBMS_DATA_ACCESS.CREATE_URL nicht als ADMIN-Benutzer auszuführen.
So verwenden Sie einen Tabellen-Hyperlink, um den Zugriff auf Daten als beliebige SQL-Abfrageanweisung zu ermöglichen:
-
Identifizieren Sie die Tabelle oder View, die Informationen enthält, die Sie gemeinsam verwenden möchten, sowie die
SELECT-Anweisung in der Tabelle oder View, die Sie verwenden möchten.Wenn es Einschränkungen für die Daten gibt, die Sie verfügbar machen möchten, verwenden Sie den Parameter
application_user_id, wenn Sie den Tabellen-Hyperlink generieren, und erstellen Sie eine VPD-Policy, um die Daten einzuschränken, die Sie bereitstellen. Weitere Informationen finden Sie unter Policy für virtuelle private Datenbanken zum Sichern von Tabellen-Hyperlinkdaten definieren. -
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink zu generieren.Sie haben zwei Optionen, je nachdem, ob Sie Default Bind-Variablenwerte aufnehmen möchten (wenn Sie Bind-Variablen in die SELECT-Anweisung aufnehmen).
-
Geben Sie eine SELECT-Anweisung an, und verwenden Sie nicht den optionalen Parameter
default_bind_values.Beispiel:
DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( sql_statement => 'SELECT species, height FROM TREE_DATA', expiration_minutes => 360, result => status); dbms_output.put_line(status); END; /Der Wert
sql_statementmuss eineSELECT-Anweisung sein. DieSELECT-Anweisung unterstützt Bind-Variablen. Wenn Bind-Variablen in der SELECT-Anweisung enthalten sind, müssen die Bind-Variablenwerte beim Zugriff auf die Daten als Abfrageparameter an den generierten Tabellen-Hyperlink angehängt werden. -
Geben Sie eine SELECT-Anweisung an, und nehmen Sie den Parameter
default_bind_valuesauf.Beispiel:
DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( sql_statement => 'select * FROM TREE_DATA WHERE COUNTY = :countyNAME', default_bind_values => '{"countyNAME" : "First"}', expiration_minutes => 360, result => status); dbms_output.put_line(status); END; /Der Parameter
sql_statementmuss eineSELECT-Anweisung sein. DieSELECT-Anweisung unterstützt Bind-Variablen.Der Parameter
default_bind_valuesgibt Werte für eine oder mehrere Bind-Variablen insql_statementan. Wenndefault_bind_valuesinDBMS_DATA_ACCESS.CREATE_URLenthalten ist:-
Bei Bind-Variablen, die in
default_bind_valuesangegeben sind, können Sie die Bind-Variablenwerte weglassen, wenn Sie auf die Daten zugreifen. Der Standardwert wird für eine angegebene Bind-Variable verwendet, wenn beim Zugriff auf die Daten kein Override in der Tabellen-Hyperlink-URL als Abfrageparameter angegeben ist. -
Sie können einen in
default_bind_valuesangegebenen Standard-Bind-Variablenwert außer Kraft setzen, wenn Sie den Wert der Bind-Variablen in der Tabellen-Hyperlink-URL als Abfrageparameter beim Zugriff auf die Daten anhängen. -
Wenn in der SELECT-Anweisung eine Bind-Variable enthalten ist und im Parameter
default_bind_valueskein Standardwert für die Bind-Variable angegeben ist, müssen Sie beim Zugriff auf die Daten einen Bind-Variablenwert an die generierte Tabellen-Hyperlink-URL als Abfrageparameter anhängen.
-
Die Unterstützung von Bind-Variablen ist für die Spaltentypen
NUMBERundVARCHAR2verfügbar.In diesen Beispielen gibt der Parameter
expiration_minutesan, dass der Tabellen-Hyperlink abläuft und nach 360 Minuten invalidiert wird. -
-
Prüfen Sie das Ergebnis.
In diesem Beispiel enthält
statusdas Ergebnis, das den Tabellen-Hyperlink enthält.{ "status" : "SUCCESS", "id" : "LCvtpALqZgcHGL4Lxyzabcxyza-QVEFngwh1UGhg8jjuFAHOQJLGFi", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/GL4Lxyzabcxyza-QVEFngwh1UGhg8n4GfPaHCgdGoLJl-V1tTUxMDgdQ/data", "expiration_ts" : "2025-08-12T04:33:40.162Z" }
Tabellen-Hyperlink mit in Spalten angegebenen UI-Features erstellen
Wenn Sie einen Tabellen-Hyperlink erstellen, können Sie den Parameter column_lists verwenden, um UI-Features für angegebene Spalten anzugeben.
Der Parameter column_lists ist ein JSON-Wert, der Optionen nach Spalte angibt. Die unterstützten Werte in column_lists sind mindestens einer der folgenden Werte:
| column_lists Wert | Beschreibung |
|---|---|
order_by_columns |
Gibt die Spalten an, die Sortierung unterstützen. Die Spalten werden in einem JSON-Array angegeben. |
filter_columns |
Gibt die Spalten an, die Filter unterstützen. Die Spalten werden in einem JSON-Array angegeben. |
default_color_columns |
Gibt an, dass nur die Standardfarbgebung für die angegebenen Spalten verwendet wird. Die Spalten werden in einem JSON-Array angegeben. |
group_by_columns |
Gibt an, dass "Gruppieren nach" für die angegebenen Spalten zulässig ist (das Anzeigen der Daten durch Gruppieren der angegebenen Spalte ist zulässig). Die Spalten werden in einem JSON-Array angegeben. |
So geben Sie UI-Funktionen auf Tabellenansichts-Spaltenebene für einen Tabellen-Hyperlink an:
-
Geben Sie die Tabelle, View oder Select-Anweisung an, die Sie gemeinsam verwenden möchten.
In diesem Beispiel wird ein Tabellen-Hyperlink mit dem Parameter
column_listsund einer Tabelle generiert. Sie können diesen Parameter auch verwenden, wenn Sie einen Tabellen-Hyperlink mit einerSELECT-Anweisung generieren.Weitere Informationen finden Sie unter Tabellen-Hyperlink für eine Tabelle oder eine Ansicht erstellen und Tabellen-Hyperlink mit einer SELECT-Anweisung erstellen.
-
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink zu generieren und die Option "Gruppieren nach Spalten" für die Anzeige mit einem Browser anzugeben:Beispiel: So geben Sie "Gruppieren nach Spalten" an:
DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'SCOTT', schema_object_name => 'TREE_DATA', expiration_minutes => 360, column_lists => '{ "group_by_columns": ["COUNTY", "SPECIES"] }', result => status); dbms_output.put_line(status); END; /Der Parameter
column_listsist JSON, der eine Liste von JSON-Arrays von Spalten enthält, die Tabellen-Hyperlink-Funktionalität definieren. Mit diesem Parameter können Sie die Spalten für eine oder mehrere der Optionen angeben:order_by_columns,filter_columns,default_color_columnsodergroup_by_columns.Beispiel:
column_lists => '{ "group_by_columns":["COUNTY", "SPECIES"], "order_by_columns":["COUNTY"] }'Weitere Informationen finden Sie unter Prozedur CREATE_URL.
-
Prüfen Sie das Ergebnis.
In diesem Beispiel enthält
statusdas Ergebnis, das Informationen zum Tabellen-Hyperlink enthält.{ "status" : "SUCCESS", "id" : "LLUZjJ5Yy8d0txydMiuxCVL_j4abc_xyzV198nGw-3yFYctMNm1p3atJr", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/-P46uQtYRt_yRfTxbcabc_xyzWlANP5RmM9Ys/data", "expiration_ts" : "2025-08-12T04:37:22.190Z" }Ein Beispiel für die Verwendung von Gruppen nach Spalten finden Sie unter Tabellenhyperlinks für den Zugriff auf Daten mit der Option "Gruppieren nach" im Tabellenformat verwenden.
-
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink zu generieren, und geben Sie eine UI-Formatoption an.Beispiel: Um die sortierbaren Spalten festzulegen, verwenden Sie die Option
column_lists order_by_columns:DECLARE status CLOB; column_lists CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'SCOTT', schema_object_name => 'TREE_DATA', expiration_minutes => 360, column_lists => '{ "order_by_columns": ["COUNTY", "SPECIES"] }', result => status); dbms_output.put_line(status); END; /Der Parameter
column_listsist JSON, der eine Liste von JSON-Arrays von Spalten enthält, die Tabellen-Hyperlink-Funktionalität definieren. Mit diesem Parameter können Sie die Spalten für eine oder mehrere der Optionen angeben:order_by_columns,filter_columns,default_color_columnsodergroup_by_columns.Weitere Informationen finden Sie unter Prozedur CREATE_URL.
-
Prüfen Sie das Ergebnis.
In diesem Beispiel enthält
statusdas Ergebnis, das Informationen zum Tabellen-Hyperlink enthält.{ "status" : "SUCCESS", "id" : "tCz2IRLIaDDymwOe1o105WQMGtyw4Z_0mGwfbv0ARcjI5SPkzR_xyz_abceyMgV", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/yfWQoyYxyz_abcGxQnCx0trQhH72m0HCjaMt8s/data", "expiration_ts" : "2025-08-12T04:41:05.115Z" }Ein Beispiel, das die Reihenfolge nach Spaltenverwendung anzeigt, finden Sie unter Tabellenhyperlinks im Tabellenformat mit Spaltensortierung verwenden.
Sie können auch:
-
Verwenden Sie
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS, um Tabellen-Hyperlinks anzuzeigen. Weitere Informationen finden Sie unter Listen-Tabellen-Hyperlinks und Tabellen-Hyperlink-Gruppen. -
Verwenden Sie
DBMS_DATA_ACCESS.EXTEND_URL, um die Lebensdauer eines Tabellen-Hyperlinks zu verlängern. Weitere Informationen finden Sie unter EXTEND_URL-Prozedur. -
Generieren Sie Tabellen-Hyperlinks, die mit verschiedenen Garantien und Ressourcen auf Serviceebene bedient werden. Beispiel: Der Zugriff auf ein Objekt oder eine SQL-Anweisung kann den Services HIGH oder MEDIUM zugeordnet werden, während der Zugriff auf ein anderes Objekt oder eine SQL-Anweisung dem LOW-Service zugeordnet werden kann. Weitere Informationen finden Sie unter Prozedur CREATE_URL.
Hyperlink für kennwortgeschützte Tabelle erstellen
Wenn Sie einen Tabellen-Hyperlink erstellen, können Sie ein Tabellen-Hyperlink-Kennwort angeben.
Wenn ein Benutzer auf einen kennwortgeschützten Tabellen-Hyperlink zugreift, muss er sich mit dem Kennwort authentifizieren, das beim Erstellen des Tabellen-Hyperlinks angegeben wurde. Dies bietet einen zusätzlichen Sicherheitsschritt, um böswilligen Zugriff zu vermeiden, wenn ein Tabellen-Hyperlink einer breiteren Zielgruppe als beabsichtigt ausgesetzt ist.
So erstellen Sie einen kennwortgeschützten Tabellen-Hyperlink:
-
Geben Sie die Tabelle, die View oder die Abfrageanweisung für die Daten an, die Sie gemeinsam verwenden möchten.
Sie können einen kennwortgeschützten Tabellen-Hyperlink oder eine Tabellen-Hyperlink-Gruppe angeben.
-
Wenn Sie einen Tabellen-Hyperlink oder eine Tabellen-Hyperlinkgruppe erstellen, geben Sie den Parameter
passwordan.Beispiel:
DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'SCOTT', schema_object_name => 'TREE_DATA', password => *passwd*, max_failed_access_attempts => 15, result => status); dbms_output.put_line(status); END; /Der Parameter
passwordgibt das Kennwort an, das für den Zugriff auf den Tabellen-Hyperlink (oder die Tabellen-Hyperlink-Gruppe) erforderlich ist. Zusätzlich zum Passwort gelten alle Sicherheitsmaßnahmen, die für einen Tabellen-Hyperlink gelten, wie Ablaufzeit und Ablaufanzahl, auch für einen kennwortgeschützten Tabellen-Hyperlink.Der Parameter
max_failed_access_attemptsgibt die maximale Anzahl an aufeinanderfolgenden fehlgeschlagenen Kennwortversuchen an. Wenn dieser Wert überschritten wird, wird der Tabellen-Hyperlink invalidiert. Der Standardwert für diesen Parameter ist 10. Die Anzahl der nacheinander nicht erfolgreichen Zugriffsversuche wird auf 0 zurückgesetzt, wenn der Benutzer das richtige Kennwort angibt.Weitere Informationen finden Sie unter Prozedur CREATE_URL.
-
Prüfen Sie das Ergebnis.
In diesem Beispiel enthält
statusdas Ergebnis, das Informationen zum Tabellen-Hyperlink enthält.{ "status" : "SUCCESS", "id" : "wPY0uxyx-gioxOndiKVlqVF585xqJs14CIp9M1qHabc_1", "url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/-pPLdrbUTcLUr1XetvO0tekak4p92m0HCjaMt8s/data", "expiration_ts" : "2025-11-06T22:41:14.779Z" }
Beachten Sie Folgendes, wenn Sie den Parameter password mit DBMS_DATA_ACCESS.CREATE_URL aufnehmen:
-
Das Ergebnis enthält das Attribut
urlmit dem Wert für die Tabellen-Hyperlink-URL. Ohne den Parameterpasswordlautet das Ergebnisattributpreauth_url. Dieser Unterschied ermöglicht es Ihnen, einen kennwortgeschützten Tabellen-Hyperlink im Ergebnis zu unterscheiden. -
Das Kennwort muss mindestens 12 Zeichen lang sein. Das Kennwort muss mindestens einen Großbuchstaben, einen Kleinbuchstaben und ein numerisches Zeichen enthalten. Diese Regeln sind mit denen identisch, die für Kennwortkomplexitätsregeln für einen Datenbankbenutzer durchgesetzt werden, der mit einer
NULLPVF (Passwortverifizierungsfunktion) verknüpft ist. WennCREATE_URLmit dem Kennwortparameter aufgerufen wird und das angegebene Kennwort nicht diesen Regeln entspricht. Beispiel: Das Kennwort ist kürzer als 12 Zeichen, die URL kann nicht mit einem Fehler erstellt werden.Weitere Informationen finden Sie unter Kennwortkomplexität in autonomer KI-Datenbank verwalten.
-
Sie haben keine Möglichkeit, ein Kennwort zu ändern oder zurückzusetzen, nachdem Sie ein Kennwort festgelegt haben. Wenn Sie
CREATE_URLausführen und anschließend nicht gespeichert haben oder sich das von Ihnen festgelegte Kennwort nicht merken können, müssen Sie einen neuen Tabellen-Hyperlink erstellen. -
Es besteht keine Zuordnung zwischen dem Kennwort für einen kennwortgeschützten Tabellen-Hyperlink und dem Kennwort des Benutzers, der die URL erstellt. Wenn der Benutzer
SCOTTeinen kennwortgeschützten Tabellen-Hyperlink mitCREATE_URLerstellt, besteht keine Verknüpfung zwischen dem Kennwort für die erstellte Tabellen-Hyperlink-URL und dem Kennwort für den BenutzerSCOTT.
Tabellen-Hyperlink mit Access Control List (ACL) erstellen
Zeigt die Schritte zum Erstellen eines Tabellen-Hyperlinks, der eine Access Control-Liste (ACL) enthält, um den Zugriff auf angegebene IP-Adressen oder CIDR-Bereiche einzuschränken. Mit dieser Methode können Sie steuern, welche Clients auf ein gemeinsam verwendetes Schemaobjekt (Tabelle oder View) zugreifen dürfen.
Um die Sicherheit aufrechtzuerhalten, empfiehlt Oracle, dass Sie DBMS_DATA_ACCESS.CREATE_URL als ADMIN-Benutzer verhindern.
So erstellen Sie einen Tabellen-Hyperlink mit ACL-Einschränkungen für ein Schemaobjekt (Tabelle oder View):
-
Geben Sie die Tabelle oder View an, die Sie gemeinsam verwenden möchten.
Beispiel: Sie möchten eine Ansicht wie
STUDENTS_VIEWfreigeben, deren Eigentümer der BenutzerUSER1ist. -
Definieren Sie IP-Zugriffsregeln mit dem Parameter
acl.Der Parameter
aclakzeptiert ein JSON-Array, das mindestens eine IP-Adresse oder einen CIDR-Bereich enthält, die den zulässigen Zugriff angeben.Beispiel:
'["1.1.1.1", "1.1.1.0/24"]'Diese Konfiguration ermöglicht den Zugriff nur über die spezifische IP
1.1.1.1und das gesamte Subnetz1.1.1.0/24. -
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink mit der vorhandenen ACL zu generieren.DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'USER1', schema_object_name => 'STUDENTS_VIEW', expiration_minutes => 120, acl => '["1.1.1.1", "1.1.1.0/24"]', result => status); dbms_output.put_line(status); END; /Der Parameter
expiration_minutesgibt an, dass der Tabellen-Hyperlink abläuft und nach 120 Minuten ungültig wird.Mit dem Parameter
aclwird sichergestellt, dass nur Clients, die Verbindungen von genehmigten IP-Adressen herstellen, den Hyperlink verwenden können.Weitere Parameterdetails und Verwendungsoptionen finden Sie unter Prozedur CREATE_URL.
-
Prüfen Sie das Ergebnis.
Die Statusvariable enthält die Ausgabe, die Informationen über den generierten Tabellen-Hyperlink enthält, wie ID, URL und Ablaufzeitstempel. Eine erfolgreiche Ausgabe kann wie folgt aussehen:
{ "status" : "SUCCESS", "id" : "example_unique_id_string", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/example_unique_id_string/data", "expiration_ts" : "2025-12-23T04:30:41.484Z" }
Sie können die generierte URL sicher mit autorisierten Empfängern teilen, um sicherzustellen, dass zeitlich begrenzte und IP-basierte Kontrollen für die bereitgestellten Daten gelten.
Tabellen-Hyperlink erstellen, der ACL-Einstellungen erbt
Zeigt die Schritte zum Erstellen eines Tabellen-Hyperlinks an, der vorhandene Access Control List-(ACL-)Einstellungen von einem übergeordneten Schemaobjekt (Tabelle oder View) erbt. Dies ermöglicht ein konsistentes Verhalten bei der Zugriffskontrolle, ohne beim Teilen von Daten ACL-Parameter manuell anzugeben.
So erstellen Sie einen Tabellen-Hyperlink, der ACL-Einstellungen erbt:
-
Geben Sie die Tabelle oder View an, die Sie gemeinsam verwenden möchten.
Beispiel: Sie können eine Ansicht mit dem Namen
STUDENTS_VIEWfreigeben, deren Eigentümer das SchemaUSER1ist. -
Entscheiden Sie den Hyperlink-Ablaufzeitraum.
Verwenden Sie den Parameter
expiration_minutes, um zu definieren, wie lange der Link vor dem Ablauf gültig bleiben soll. In diesem Beispiel läuft der Link nach120 minutesab. -
ACL-Vererbung aktivieren.
Legen Sie den Parameter
inherit_acl => TRUEso fest, dass automatisch dieselbe ACL wie die Quelltabelle oder -ansicht angewendet wird. Dadurch wird sichergestellt, dass der Hyperlink alle Berechtigungen erbt, die für das übergeordnete Schemaobjekt konfiguriert sind. -
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink zu generieren.DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'USER1', schema_object_name => 'STUDENTS_VIEW', expiration_minutes => 120, inherit_acl => TRUE, result => status); dbms_output.put_line(status); END; /Der Parameter
inherit_aclweist Oracle Autonomous AI Database an, die für das Quellobjekt definierte Access Control-Liste wiederzuverwenden. Dabei gelten dieselben Einschränkungen für alle Benutzer, die auf den Hyperlink zugreifen. -
Prüfen Sie das Ergebnis.
Der PL/SQL-Block gibt eine JSON-Antwort in der Variablen
statuszurück. Diese Antwort enthält Metadaten zum neu erstellten Tabellen-Hyperlink, wie Status, Hyperlink-ID, vorautorisierte URL und Ablaufzeitstempel.Beispiel:
{ "status" : "SUCCESS", "id" : "hY04uxyx-PoLxnHadiCQrsVQ785xqJs14CIp9M1qHd-m8bqJi-QC7skfwGesG", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/hY04uxyx-PoLxnHadiCQrsVQ785xqJs14CIp9M1qHd/data", "expiration_ts" : "2025-12-22T18:45:41.484Z" }Sie können die generierte
preauth_urljetzt sicher für autorisierte Benutzer freigeben. Da der Hyperlink ACL-Einstellungen erbt, erzwingt er automatisch die gleichen IP-, Benutzer- oder Netzwerkeinschränkungen wie das zugrunde liegende SchemaobjektSTUDENTS_VIEW.
Konsistenten Tabellen-Hyperlink für eine Tabelle oder View erstellen
Zeigt die Schritte zum Erstellen eines Tabellen-Hyperlinks mit aktivierter konsistenter Option an, mit denen Sie eine lesekonsistente Ansicht der Daten zu einem bestimmten Zeitpunkt generieren können.
So erstellen Sie einen Tabellen-Hyperlink, der einen konsistenten Daten-Snapshot für ein Schemaobjekt (Tabelle oder View) erstellt:
-
Geben Sie die Tabelle oder View an, die Sie gemeinsam verwenden möchten.
In diesem Beispiel wird eine Ansicht mit dem Namen
STUDENTS_VIEWim SchemaUSER1verwendet. -
Bestimmen Sie den Hyperlink-Ablaufzeitraum.
Der Parameter
expiration_minutesgibt die Dauer (in Minuten) an, für die der Hyperlink gültig bleibt. In diesem Fall läuft der Hyperlink nach120Minuten ab. -
Aktivieren Sie den Konsistenzmodus.
Setzen Sie den konsistenten Parameter auf
TRUE, um sicherzustellen, dass alle über den Hyperlink abgerufenen Daten einen einzelnen Transaktions-Snapshot des Quellobjekts darstellen. -
Führen Sie
DBMS_DATA_ACCESS.CREATE_URLaus, um den Tabellen-Hyperlink zu erstellen.DECLARE status CLOB; BEGIN DBMS_DATA_ACCESS.CREATE_URL( schema_name => 'USER1', schema_object_name => 'STUDENTS_VIEW', expiration_minutes => 120, consistent => TRUE, result => status); dbms_output.put_line(status); END; /Der konsistente Parameter stellt sicher, dass jeder Lesevorgang, der über diesen Hyperlink ausgeführt wird, Daten zu einem bestimmten Zeitpunkt abruft, selbst wenn nachfolgende Aktualisierungen in der Basistabelle oder View auftreten.
Einzelheiten zu allen von dieser Prozedur unterstützten Parametern finden Sie unter CREATE_URL-Prozedur.
-
Prüfen Sie das Ergebnis.
Die Statusvariable enthält die Ausgabe des Vorgangs, die Informationen wie den Hyperlinkstatus, die ID, die generierte URL und den Ablaufzeitstempel enthält.
Beispiel:
{ "status" : "SUCCESS", "id" : "pK80uxyx-GioxJndiQVrVFG585xqJs14CIp9M1qHd-m8bqJi-QCahwfwGesH", "preauth_url" : "https://dataaccess.adb.us-ashburn-1.oraclecloudapps.com/adb/p/pK80uxyx-GioxJndiQVrVFG585xqJs14CIp9M1qHd/data", "expiration_ts" : "2025-12-22T23:16:41.484Z" }
Sie können die generierte URL jetzt sicher mit autorisierten Benutzern teilen. Durch die konsistente Einstellung wird sichergestellt, dass allen Benutzern, die auf den Hyperlink zugreifen, zum Zeitpunkt der Erstellung der URL dieselbe transaktionskonsistente Ansicht der STUDENTS_VIEW-Daten angezeigt wird.
Tabellen-Hyperlinks invalidieren
Ein Benutzer mit entsprechenden Berechtigungen kann einen Tabellen-Hyperlink jederzeit invalidieren.
Um einen Tabellen-Hyperlink zu invalidieren, benötigen Sie den Tabellen-Hyperlink id. Verwenden Sie DBMS_DATA_ACCESS.LIST_ACTIVE_URLS, um eine Liste der Tabellen-Hyperlinks und der zugehörigen id zu generieren.
Verwenden Sie DBMS_DATA_ACCESS.INVALIDATE_URL, um einen Tabellen-Hyperlink zu invalidieren. Beispiel:
DECLARE
status CLOB;
BEGIN
DBMS_DATA_ACCESS.INVALIDATE_URL(
id => 'Vd1Px7QWASdqDbnndiuwTAyyEstv82PCHqS_example',
result => status);
dbms_output.put_line(status);
END;
/Sie können auch DBMS_DATA_ACCESS.INVALIDATE_URL verwenden, um eine Tabellen-Hyperlink-Gruppe zu invalidieren.
Weitere Informationen finden Sie unter Tabellen-Hyperlinkgruppe validieren und Prozedur INVALIDATE_URL.
Policy für eine virtuelle private Datenbank zum Sichern von Tabellen-Hyperlinkdaten definieren
Durch die Definition von Oracle Virtual Private Database-(VPD-)Policys für Daten, die Sie mit einem Tabellen-Hyperlink gemeinsam verwenden, können Sie eine fein granulierte Zugriffskontrolle bereitstellen, sodass nur eine Teilmenge von Daten, Zeilen für einen bestimmten Tabellen-Hyperlink sichtbar ist.
Oracle Virtual Private Database (VPD) ist ein Sicherheitsfeature, mit dem Sie den Datenzugriff für Benutzer und Anwendungen dynamisch auf Zeilenebene steuern können, indem Sie Filter für dasselbe Dataset anwenden. Wenn auf einen Tabellen-Hyperlink zugegriffen wird, ist der bei der Generierung des Tabellen-Hyperlinks angegebene Wert von application_user_id über sys_context('DATA_ACCESS_CONTEXT$', 'USER_IDENTITY') verfügbar. Sie können VPD-Policys definieren, die den Wert dieses Anwendungskontexts verwenden, um die Daten und Zeilen einzuschränken, die für den Anwendungsbenutzer sichtbar sind.
Jeder Benutzer, dem der Zugriff auf das Lesen von Daten mit einem Tabellen-Hyperlink gewährt wird, kann auf die Daten zugreifen und diese verwenden (entweder eine Tabelle, eine View oder die Daten, die mit einer SELECT-Anweisung bereitgestellt werden). Indem Sie eine VPD-Policy für die Datenbank definieren, die einen Tabellen-Hyperlink generiert hat, können Sie den Wert application_user_id in einer SYS_CONTEXT-Regel verwenden, um eine fein granuliertere Kontrolle bereitzustellen. Beispiel für die Bereitstellung von Daten mit einem Tabellen-Hyperlink. Wenn Sie den Zugriff auf einige der Daten einschränken möchten, können Sie eine VPD-Policy hinzufügen.
Beispiel:
-
Rufen Sie den
application_user_id-Wert ab, den Sie beim Generieren des Tabellen-Hyperlinks angegeben haben. -
Erstellen Sie eine VPD-Policy für die Datenbank, in der Sie den Tabellen-Hyperlink generiert haben.
CREATE OR REPLACE FUNCTION limit_sal (v_schema IN VARCHAR2, v_objname IN VARCHAR2)
RETURN VARCHAR2 authid current_user AS
BEGIN
RETURN 'employee_id = SYS_CONTEXT(''DATA_ACCESS_CONTEXT$'', ''USER_IDENTITY'')';
END;See [DBMS_RLS](/pls/topic/lookup?ctx=en/cloud/paas/autonomous-database/serverless/adbsb&id=ARPLS-GUID-27507923-FF74-4193-B55D-6ECB11B58FCC) for more information.
-
VPD-Policy registrieren
BEGIN DBMS_RLS.ADD_POLICY( object_schema => 'HR', object_name => 'EMPLOYEE', policy_name => 'POL', policy_function => 'LIMIT_SAL'); END; /Weitere Informationen finden Sie unter DBMS_RLS.
Weitere Informationen finden Sie unter Datenzugriff mit der Oracle Virtual Private Database steuern.
Verwendung von Tabellen-Hyperlinks überwachen und anzeigen
Die autonome KI-Datenbank bietet Ansichten, mit denen Sie die Verwendung von Tabellen-Hyperlinks überwachen können.
| Ansichten | Beschreibung |
|---|---|
| V$DATA_ACCESS_URL_STATS und GV$DATA_ACCESS_URL_STATS Views | Diese Views verfolgen die Verwendung von Tabellen-Hyperlinks, einschließlich der verstrichenen Zeit, der CPU-Zeit und zusätzlicher Informationen. |
Hinweise zum Erstellen eines Tabellen-Hyperlinks oder einer Tabellen-Hyperlink-Gruppe
Hinweise zum Erstellen eines Tabellen-Hyperlinks oder einer Tabellen-Hyperlink-Gruppe mit DBMS_DATA_ACCESS.CREATE_URL:
-
Mit dem optionalen Parameter
service_namekönnen Sie angeben, dass ein generierter Tabellen-Hyperlink mit einer bestimmten Service-Level-Garantie und Ressourcen verarbeitet wird. Beispiel: Verwenden Sie den Parameterservice_name, um anzugeben, dass der Zugriff auf die SQL-Anweisung dem HIGH-Service zugeordnet ist. -
Sie können den einen oder beide der optionalen Parameter
inherit_aclundaclverwenden, wenn Sie den Zugriff auf Tabellen-Hyperlink-Daten einschränken möchten:-
inherit_acl: Verwenden Sie den optionalen Parameterinherit_acl, wenn Sie den Zugriff auf Tabellen-Hyperlinkdaten einschränken möchten. Setzen Sie diesen Parameter aufTRUE, um ACLs zu übernehmen. Wenn der Wert dieses ParametersTRUElautet, wird die IP-Adresse eines eingehenden Tabellen-Hyperlink-Consumers mit den ACLs in der Producer-Datenbank validiert, bevor der Zugriff auf Daten zugelassen wird. Wenn für die Producer-Datenbank keine ACLs konfiguriert sind, wird der Wertinherit_aclignoriert, und der Datenzugriff ist ohne ACL-Prüfungen zulässig. -
acl: Verwenden Sie den optionalen Parameteracl, um eine ACL anzugeben, die für den Tabellen-Hyperlink gilt. Der Parameterwert gibt die Liste der zulässigen IP-Adressen, CIDR-Blöcke oder OCI-VCN-OCIDs an. Wenn der Parameteraclangegeben wird, kann ein Tabellen-Hyperlink-Consumer nur von den in der ACL angegebenen Hosts auf die Daten zugreifen.
Wenn
inherit_aclTRUEist und der Parameteraclso festgelegt ist, dass eine ACL angegeben wird, kann ein Tabellen-Hyperlink-Consumer auf die Daten eines Tabellen-Hyperlinks von den Hosts zugreifen, die mit dem Parameteraclangegeben wurden, oder von den geerbten Hosts, die in der für die Instanz der autonomen KI-Datenbank angegebenen ACL definiert sind.Weitere Informationen finden Sie unter Netzwerkzugriff mit Access Control-Regeln (ACLs) konfigurieren.
-
-
Wenn Sie den optionalen Parameter
consistentaufTRUEsetzen, erzeugt ein Tabellen-Hyperlink-Producer Daten konsistent über verschiedene Seiten hinweg. Dadurch kann ein Consumer auf die Daten für alle Seiten zugreifen, die mit einem Tabellen-Hyperlink verknüpft sind, und dabei denselben Daten-Snapshot (SCN) wie die SCN verwenden, die mit dem Zugriff für die erste Seite verknüpft ist. Mit dieser Option kann ein Producer konsistente Daten an einen Consumer zurückgeben, bei dem Antworten paginiert werden und mehrere Seiten zurückgegeben werden (die Daten werden Seite für Seite zurückgegeben, wenn sie aufgerufen werden).Wenn
consistentaufTRUEgesetzt ist und ein Tabellen-Hyperlink Schemaobjekte aus dem Schema eines anderen Benutzers referenziert, muss der Datenbankbenutzer, der den Tabellen-Hyperlink erstellt, die BerechtigungFLASHBACKfür alle Schemaobjekte besitzen, die im Tabellen-Hyperlink verwendet werden und zum Schema des anderen Benutzers gehören.Beispiel:
GRANT FLASHBACK ON TREE_SCHEMA.TREE_DATA TO SCOTT;Hinweis: Wenn eine hohe Datenbankaktivität vorliegt und genügend Zeit zwischen dem Abrufen der ersten Seite und dem Abrufen einer nachfolgenden Seite vergeht, ist es möglicherweise nicht möglich, nachfolgende Daten abzurufen, die mit dem ersten Zugriff konsistent sind. In diesem Fall führt der Abruf zu einem Fehler.
Weitere Informationen finden Sie unter Auf Daten mit Tabellen-Hyperlinks oder mit Tabellen-Hyperlink-Gruppen zugreifen.
-
Wenn Sie einen Tabellen-Hyperlink in einer autonomen KI-Datenbankinstanz mit einem privaten Endpunkt erstellen, enthält das Ergebnis den Namen
private_preauth_urlmit dem Wert des folgenden Formulars:"https://private-endpoint/adb/p/parurl-token/data".Wenn Sie einen Tabellenhyperlink in einer autonomen KI-Datenbankinstanz mit einem privaten Endpunkt erstellen und der private Endpunkt mit aktiviertem Öffentlichen Zugriff zulassen konfiguriert ist, enthält das Ergebnis sowohl die
preauth_urlfür den öffentlichen Endpunkt als auchprivate_preauth_url.Weitere Informationen finden Sie unter Private Endpunkte konfigurieren und Privaten Endpunkt mit zulässigem öffentlichem Zugriff verwenden.
-
Verwenden Sie
DBMS_DATA_ACCESS.LIST_ACTIVE_URLS, um Tabellen-Hyperlinks anzuzeigen. Weitere Informationen finden Sie unter Listen-Tabellen-Hyperlinks und Tabellen-Hyperlink-Gruppen. -
Verwenden Sie
DBMS_DATA_ACCESS.EXTEND_URL, um die Lebensdauer eines Tabellen-Hyperlinks zu verlängern. Weitere Informationen finden Sie unter EXTEND_URL-Prozedur.