Auf dieser Seite werden parametrisierte sichere Ansichten in AlloyDB for PostgreSQL beschrieben. Sie bieten Sicherheit für Anwendungsdaten und Zeilenzugriffssteuerung mithilfe von SQL-Ansichten und tragen dazu bei, dass Anwendungsnutzer nur die Daten sehen können, auf die sie zugreifen dürfen.
Parametrisierte sichere Ansichten sind eine Erweiterung von sicheren PostgreSQL-Ansichten. Damit können Sie anwendungsspezifische benannte Ansichtsparameter in Ansichtsdefinitionen verwenden. Diese Funktion bietet eine Schnittstelle, die eine Abfrage und Werte für die benannten Parameter entgegennimmt. Die Benutzeroberfläche führt die Abfrage mit diesen Werten aus, die während der gesamten Ausführung der Abfrage verwendet werden.
Hier sehen 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 AlloyDB-Ansichten verwalten.
Vorteile von parametrisierten sicheren Ansichten
Parametrisierte sichere Ansichten eignen sich gut für die Verwaltung der Datensicherheit auf Datenbankebene, insbesondere wenn Sie es mit Ad-hoc-Abfragen aus nicht vertrauenswürdigen Quellen zu tun haben, 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 beispielsweise eine Anwendung vor, die das aufgegebene Gepäck von Kunden verfolgt. Ein Kunde mit der Nutzer-ID 12345 fragt: „Wo ist mein Gepäck?“ 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.
Minimiertes Sicherheitsrisiko
Parametrisierte sichere Ansichten tragen dazu bei, Sicherheitsrisiken zu minimieren, wenn Endnutzer nicht vertrauenswürdige Abfragen, z. B. Abfragen in natürlicher Sprache, für Ihre Datenbank ausführen. Dazu gehören folgende Risiken:
- Böswillige Prompts:Nutzer versuchen möglicherweise, das zugrunde liegende Modell zu manipulieren, um auf alle Anwendungsdaten zuzugreifen.
- SQL-Abfragen mit breitem Umfang:Large Language Models (LLMs) können SQL-Abfragen generieren, die vertrauliche 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 Kontrolle sorgt für Datensicherheit, unabhängig davon, wie Nutzer ihre Anfragen formulieren.
Verwaltung des Datenzugriffs
Parametrisierte sichere Ansichten bieten eine Lösung für die häufigen 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 nutzen, bei denen Sie möglicherweise einen separaten Datenbanknutzer oder eine separate Datenbankrolle für jeden Endnutzer erstellen müssen. Parametrisierte sichere Ansichten vereinfachen die Nutzer- und Verbindungsverwaltung für Anwendungen, in denen jeder Endnutzer nur auf seine Daten zugreifen muss.
In einer Anwendung für eine Fluggesellschaft, 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. Mit dieser Ansicht kann eine einzelne Datenbankrolle mit Zugriff auf die Ansicht, nicht auf die zugrunde liegende Tabelle, für alle Nutzer verwendet werden. Das vereinfacht die Nutzerverwaltung und Datenbankverbindungen.
Optimierte Sicherheitsdurchsetzung:Parameterisierte sichere Ansichten enthalten von Natur aus Zugriffssteuerungen. Wenn eine Ansicht abgefragt wird, werden die definierten Sicherheitsparameter unabhängig vom Nutzer, der auf die Ansicht zugreift, einheitlich angewendet. Dieser Ansatz steht im Gegensatz zu Situationen, in denen zugrunde liegende Sicherheitsrichtlinien für Basistabellen möglicherweise nicht automatisch auf Ansichten angewendet werden, ohne dass eine zusätzliche Konfiguration erforderlich ist.
Weitere Informationen zu vorhandenen Sicherheitsmechanismen in PostgreSQL, z. B. RLS-Richtlinien (Row Level Security), finden Sie unter Row Security Policies.
Sicherheitsmechanismus
Parametrisierte sichere Ansichten bieten Anwendungsentwicklern Datensicherheit und Zeilen-Zugriffssteuerung mit den folgenden Methoden:
- Ansichten, die mit der Option
WITH (security barrier)
erstellt wurden, bieten Sicherheit auf Zeilenebene, da verhindert wird, dass böswillig ausgewählte Funktionen und Operatoren Werte aus Zeilen erhalten, bevor die Ansicht ihre Arbeit erledigt 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. die 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. solche, die von einer KI-Generierung von natürlicher Sprache zu SQL generiert werden. So wird verhindert, dass die Sicherheitsebene, die durch parametrisierte sichere Ansichten bereitgestellt wird, umgangen wird, und die Ressourcennutzung wird verwaltet. Weitere Informationen finden Sie unter Erzwungene Einschränkungen für Anfragen.
Beschränkungen
Sie müssen das Flag für parametrisierte Ansichten für jede AlloyDB-Instanz separat aktivieren. Auf der primären Instanz erstellte parametrisierte Ansichtsobjekte werden an Lesepoolinstanzen und regionenübergreifende Replikate weitergegeben. Die Einstellung des
parameterized_views.enabled
-Flags wird 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 regionsübergreifenden Replikat erst abfragen, wenn Sie das Flag
parameterized_views.enabled
für jede Instanz aktivieren.
Nächste Schritte
- Anwendungssicherheit mit parametrisierten sicheren Ansichten verwalten
- Zugriff auf Anwendungsdaten mit parametrisierten sicheren Ansichten sichern und steuern.