Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
CREATE RLS POLICY
Erstellt eine neue RLS-Richtlinie auf Zeilenebene, um granularen Zugriff auf Datenbankobjekte bereitzustellen.
Superuser und Benutzer oder Rollen mit der Rolle sys:secadmin können eine Richtlinie erstellen.
Syntax
CREATE RLS POLICY policy_name [ WITH (column_name data_type [, ...]) [ [AS] relation_alias ] ] USING ( using_predicate_exp )
Parameter
- policy_name
-
Der Name der -Richtlinie.
- WITH(Spaltenname Datentyp [,...] )
-
Bestimmt den column_name und den data_type, die sich auf die Spalten der Tabellen beziehen, denen die Richtlinie zugeordnet ist.
Sie können die WITH Klausel nur weglassen, wenn die RLS Richtlinie keine Tabellenspalten referenziert, an die die Richtlinie angehängt ist.
- ALS relation_alias
-
Gibt einen optionalen Alias für die Tabelle an, an die die RLS Richtlinie angehängt wird.
- USING(using_predicate_exp)
-
Gibt einen Filter an, der auf die Klausel der Abfrage angewendet wird. WHERE Amazon Redshift wendet ein Richtlinienprädikat vor den Benutzerprädikaten auf Abfrageebene an. Beispielsweise schränkt
current_user = ‘joe’ and price > 10
ein, dass Joe nur Datensätze mit einem Preis von mehr als 10 USD sehen kann.
Nutzungshinweise
Beachten Sie bei der Arbeit mit der CREATE RLS POLICY Anweisung Folgendes:
Amazon Redshift unterstützt Filter, die Teil einer WHERE Klausel einer Abfrage sein können.
Alle Richtlinien, die an eine Tabelle angefügt werden, müssen mit demselben Tabellenalias erstellt worden sein.
Sie benötigen keine SELECT Genehmigung für Nachschlagetabellen. Wenn Sie eine Richtlinie erstellen, erteilt Amazon Redshift die SELECT Berechtigung für die Nachschlagetabelle für die jeweilige Richtlinie. Eine Nachschlagetabelle ist ein Tabellenobjekt, das innerhalb einer Richtliniendefinition verwendet wird.
Die Amazon Redshift Redshift-Sicherheit auf Zeilenebene unterstützt die folgenden Objekttypen innerhalb einer Richtliniendefinition nicht: Katalogtabellen, datenbankübergreifende Beziehungen, externe Tabellen, reguläre Ansichten, Late-Binding-Ansichten, Tabellen mit aktivierten RLS Richtlinien und temporäre Tabellen.
Beispiele
Mit den folgenden SQL Anweisungen werden die Tabellen, Benutzer und Rollen für das Beispiel erstellt. CREATE RLS POLICY
-- Create users and roles reference in the policy statements. CREATE ROLE analyst; CREATE ROLE consumer; CREATE USER bob WITH PASSWORD 'Name_is_bob_1'; CREATE USER alice WITH PASSWORD 'Name_is_alice_1'; CREATE USER joe WITH PASSWORD 'Name_is_joe_1'; GRANT ROLE sys:secadmin TO bob; GRANT ROLE analyst TO alice; GRANT ROLE consumer TO joe; GRANT ALL ON TABLE tickit_category_redshift TO PUBLIC;
Im folgenden Beispiel wird eine Richtlinie mit dem Namen policy_concerts erstellt.
CREATE RLS POLICY policy_concerts WITH (catgroup VARCHAR(10)) USING (catgroup = 'Concerts');