Auf dieser Seite werden parametrisierte sichere Ansichten in AlloyDB Omni beschrieben, die die Sicherheit von Anwendungsdaten und die Zugriffssteuerung auf Zeilenebene mithilfe von SQL-Ansichten ermöglichen. So wird sichergestellt, dass Anwendungsnutzer nur die Daten sehen, auf die sie zugreifen dürfen.
Parametrisierte sichere Ansichten sind eine Erweiterung von sicheren PostgreSQL-Ansichten, mit denen Sie anwendungsspezifische benannte Ansichtsparameter in Ansichtsdefinitionen verwenden können. Diese Funktion bietet eine Schnittstelle, die eine Abfrage und Werte für die benannten Parameter akzeptiert. Die Schnittstelle führt die Abfrage mit diesen Werten aus, die während der gesamten Ausführung der Abfrage verwendet werden.
Im Folgenden finden Sie ein Beispiel für eine parametrisierte sichere Ansicht:
CREATE VIEW secure_checked_items WITH (security_barrier) AS
SELECT bag_id, timestamp, location
FROM checked_items t
WHERE customer_id = $@app_end_userid;
Sie können parametrisierte sichere Ansichten mit der gespeicherten Prozedur execute_parameterized_query oder durch Ausführen der Anweisung EXECUTE .. WITH VIEW PARAMETERS abfragen.
Weitere Informationen finden Sie unter Sicherheit von Anwendungsdaten mit parametrisierten sicheren Ansichten von AlloyDB Omni verwalten.
Vorteile von parametrisierten sicheren Ansichten
Parametrisierte sichere Ansichten eignen sich gut für die Verwaltung der Datensicherheit auf Datenbankebene, insbesondere bei Ad-hoc-Abfragen aus nicht vertrauenswürdigen Quellen, z. B. solchen, die aus natürlicher Sprache übersetzt wurden. Diese Ansichten bieten eine flexible Möglichkeit, eine detaillierte Zugriffssteuerung zu implementieren.
Stellen Sie sich zum Beispiel eine Anwendung vor, die das aufgegebene Gepäck von Kunden verfolgt. Ein Kunde mit der Nutzer-ID 12345 fragt: „Wo ist meine Tasche?“ In diesem Szenario sorgen parametrisierte sichere Ansichten für Folgendes:
Die Abfrage gibt nur Zeilen zurück, auf die der Nutzer, der die Abfrage gesendet hat, Zugriff hat, z. B. Zeilen, die mit der Nutzer-ID 12345 verknüpft sind.
Sicherheitsrisiken minimieren
Parametrisierte sichere Ansichten helfen, Sicherheitsrisiken zu minimieren, wenn Endnutzer nicht vertrauenswürdige Abfragen wie Abfragen in natürlicher Sprache für Ihre Datenbank ausführen. Zu diesen Risiken gehören:
- Böswillige Prompts: Nutzer versuchen möglicherweise, das zugrunde liegende Modell zu manipulieren, um auf alle Anwendungsdaten zuzugreifen.
- Breit gefasste SQL-Abfragen: Large Language Models (LLMs) können SQL-Abfragen generieren, die sensible Daten offenlegen, selbst bei gut gemeinten Nutzeranfragen.
Mit parametrisierten sicheren Ansichten können Sie den Bereich der Zeilen einschränken, die einzelnen Anwendungsnutzern zur Verfügung stehen. Diese Einstellung sorgt für Datensicherheit, unabhängig davon, wie Nutzer ihre Abfragen formulieren.
Datenzugriffsverwaltung
Parametrisierte sichere Ansichten sind eine Lösung für häufige Herausforderungen bei der Verwaltung des Datenzugriffs für eine große und wachsende Anzahl von Nutzern.
- Vereinfachte Nutzerverwaltung: Mit parametrisierten sicheren Ansichten können Sie eine einzelne Datenbankrolle für alle Endnutzer verwenden, anstatt Methoden zu verwenden, bei denen Sie möglicherweise für jeden Endnutzer einen separaten Datenbanknutzer oder eine separate Rolle erstellen müssen. Parametrisierte sichere Ansichten vereinfachen die Nutzer- und Verbindungsverwaltung für Anwendungen, bei denen jeder Endnutzer nur Zugriff auf seine eigenen Daten benötigt. In einer Fluggesellschaftsanwendung, in der Kunden nur ihre eigenen Buchungen sehen sollen, können Sie beispielsweise eine einzelne parametrisierte sichere Ansicht definieren, die durch die Endnutzer-ID parametrisiert wird. Diese Ansicht ermöglicht es, dass eine einzelne Datenbankrolle mit Zugriff auf die Ansicht, aber nicht auf die zugrunde liegende Tabelle, alle Nutzer bedient. Das vereinfacht die Nutzerverwaltung und die Datenbankverbindungen.
- Optimierte Sicherheitsmaßnahmen: Parametrisierte sichere Ansichten enthalten von Natur aus Zugriffssteuerungen. Wenn eine Ansicht abgefragt wird, werden die definierten Sicherheitsparameter einheitlich erzwungen, unabhängig davon, welcher Nutzer auf die Ansicht zugreift. Dieser Ansatz steht im Gegensatz zu Situationen, in denen die zugrunde liegenden Sicherheitsrichtlinien für Basistabellen ohne zusätzliche Konfiguration möglicherweise nicht automatisch auf Ansichten angewendet werden.
Weitere Informationen zu vorhandenen Sicherheitsmechanismen in PostgreSQL, z. B. Richtlinien für die Sicherheit auf Zeilenebene (Row Level Security, RLS), finden Sie unter Richtlinien für die Sicherheit auf Zeilenebene.
Sicherheitsmechanismus
Parametrisierte sichere Ansichten bieten eine zusätzliche Sicherheitsebene, da sie steuern, wie Abfragen auf die zugrunde liegenden Daten zugreifen. Sie bieten Anwendungsentwicklern Datensicherheit und Zugriffssteuerung auf Zeilenebene mit den folgenden Methoden:
- Ansichten, die mit der Option
WITH (security barrier)erstellt wurden, bieten Sicherheit auf Zeilenebene, da verhindert wird, dass bösartig ausgewählte Funktionen und Operatoren Werte aus Zeilen übergeben, bis die Ansicht ihre Arbeit abgeschlossen hat. Weitere Informationen zurWITH (security barrier)-Klausel finden Sie unter Regeln und Berechtigungen. - Die Parametrisierung mit benannten Ansichtsparametern ermöglicht eine eingeschränkte Ansicht der Datenbank, die durch Werte parametrisiert wird, die von der Anwendung basierend auf der Sicherheit auf Anwendungsebene bereitgestellt werden, z. B. der Endnutzerauthentifizierung.
- Die Durchsetzung zusätzlicher Einschränkungen für Abfragen, die auf parametrisierte Ansichten zugreifen, ist nützlich für Anwendungen, die nicht vertrauenswürdige Abfragen von Endnutzern ausführen, z. B. Abfragen, die von einer KI-Generierung von Natural Language zu SQL generiert werden. Dadurch wird verhindert, dass die Sicherheitsumgebung, die durch parametrisierte sichere Ansichten bereitgestellt wird, umgangen wird, und die Ressourcennutzung wird verwaltet. Weitere Informationen finden Sie unter Erzwungene Einschränkungen für Abfragen.
Beschränkungen
- Sie müssen das Flag für parametrisierte Ansichten für jede AlloyDB Omni-Instanz separat aktivieren. Parametrisierte Ansichtsobjekte, die auf der primären Instanz erstellt wurden, werden an Lesepoolinstanzen und regionenübergreifende Replikate weitergegeben.
Die Flag-Einstellung
parameterized_views.enabledwird jedoch nicht automatisch angewendet und muss für jede Instanz manuell festgelegt werden. Weitere Informationen finden Sie unter Vorbereitung. Sie können parametrisierte Ansichten in einer Lesepoolinstanz oder in einem regionenübergreifenden Replikat erst abfragen, wenn Sie das Flagparameterized_views.enabledfür jede Instanz aktiviert haben.
Nächste Schritte
- Anwendungsdatensicherheit mit parametrisierten sicheren Ansichten verwalten
- Zugriff auf Anwendungsdaten mit parametrisierten sicheren Ansichten sichern und steuern