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.
Richtlinienabhängige Objekte und Prinzipien
Um die Sicherheit für Anwendungen zu gewährleisten und zu verhindern, dass Richtlinienobjekte veraltet oder ungültig werden, lässt Amazon Redshift das Entfernen oder Ändern von Objekten, auf die von RLS-Richtlinien verwiesen wird, nicht zu.
Im Folgenden werden Schema-Objektabhängigkeiten aufgelistet, die Amazon Redshift für RLS-Richtlinien (Row-Level Security) verfolgt.
-
Beim Verfolgen der Schemaobjektabhängigkeit für die Zieltabelle folgt Amazon Redshift diesen Regeln:
Amazon Redshift trennt die Richtlinie von einer Relation, einem Benutzer, einer Rolle oder einer Öffentlichkeit, wenn Sie eine Zieltabelle entfernen.
Wenn Sie den Namen einer Zieltabelle umbenennen, hat dies keine Auswirkungen auf die zugeordneten Richtlinien.
Sie können die Spalten der Zieltabelle, auf die in der Richtliniendefinition verwiesen wird, nur entfernen, wenn Sie zuerst die Richtlinie entfernen oder trennen. Dies gilt auch, wenn die Option CASCADE angegeben ist. Sie können andere Spalten in der Zieltabelle entfernen.
Sie können die referenzierten Spalten der Zieltabelle nicht umbenennen. Um verwiesene Spalten umzubenennen, trennen Sie zuerst die Richtlinie. Dies gilt auch, wenn die Option CASCADE angegeben ist.
Sie können den Typ der referenzierten Spalte nicht ändern, selbst wenn Sie die CASCADE-Option angeben.
Bei der Verfolgung der Schema-Objekt-Abhängigkeit für die Nachschlagetabelle folgt Amazon Redshift diesen Regeln:
Sie können eine Nachschlagetabelle nicht entfernen. Um eine Nachschlagetabelle zu entfernen, entfernen Sie zuerst die Richtlinie, in der auf die Nachschlagetabelle verwiesen wird.
Sie können eine Nachschlagetabelle nicht umbenennen. Um eine Nachschlagetabelle umzubenennen, entfernen Sie zunächst die Richtlinie, in der auf die Nachschlagetabelle verwiesen wird. Dies gilt auch, wenn die Option CASCADE angegeben ist.
Sie können die in der Richtliniendefinition verwendeten Spalten der Nachschlagetabelle nicht entfernen. Um die in der Richtliniendefinition verwendeten Nachschlagetabellenspalten zu entfernen, entfernen Sie zunächst die Richtlinie, in der die Nachschlagetabelle referenziert wird. Dies gilt auch, wenn die Option CASCADE in der ALTER TABLE DROP COLUMN-Anweisung angegeben ist. Sie können andere Spalten in der Nachschlagetabelle entfernen.
Sie können die referenzierten Spalten der Nachschlagetabelle nicht umbenennen. Um referenzierte Spalten umzubenennen, entfernen Sie zunächst die Richtlinie, in der auf die Nachschlagetabelle verwiesen wird. Dies gilt auch, wenn die Option CASCADE angegeben ist.
Sie können den Typ der referenzierten Spalte nicht ändern.
Wenn ein Benutzer oder eine Rolle entfernt wird, trennt Amazon Redshift automatisch alle dem Benutzer oder der Rolle zugeordneten Richtlinien.
Wenn Sie die CASCADE-Option in der DROP SCHEMA-Anweisung verwenden, entfernt Amazon Redshift auch die Relationen im Schema. Außerdem werden die Relationen in allen anderen Schemata entfernt, die von den Relationen des entfernten Schemas abhängig sind. Für eine Relation, die eine Nachschlagetabelle in einer Richtlinie ist, lässt Amazon Redshift die DROP SCHEMA DDL fehlschlagen. Für alle Relationen, die durch die DROP-SCHEMA-Anweisung entfernt werden, trennt Amazon Redshift alle Richtlinien, die diesen Relationen zugeordnet sind.
Sie können eine Suchfunktion (eine Funktion, auf die innerhalb einer Richtliniendefinition verwiesen wird) nur entfernen, wenn Sie auch die Richtlinie entfernen. Dies gilt auch, wenn die Option CASCADE angegeben ist.
Wenn eine Richtlinie an eine Tabelle angefügt wird, prüft Amazon Redshift, ob diese Tabelle eine Nachschlagetabelle in einer anderen Richtlinie ist. In diesem Fall lässt Amazon Redshift das Anhängen einer Richtlinie an diese Tabelle nicht zu.
Beim Erstellen einer RLS-Richtlinie (Row-Level Security) prüft Amazon Redshift, ob diese Tabelle eine Zieltabelle für eine andere RLS-Richtlinie ist. In diesem Fall lässt Amazon Redshift das Erstellen einer Richtlinie für diese Tabelle nicht zu.
Beispiel
Das folgende Beispiel zeigt, wie die Abhängigkeit von Schemas verfolgt wird.
-- The CREATE and ATTACH policy statements for `policy_events` references some
-- target and lookup tables.
-- Target tables are tickit_event_redshift and target_schema.target_event_table.
-- Lookup table is tickit_sales_redshift.
-- Policy `policy_events` has following dependencies:
-- table tickit_sales_redshift column eventid, qtysold
-- table tickit_event_redshift column eventid
-- table target_event_table column eventid
-- schema public and target_schema
CREATE RLS POLICY policy_events
WITH (eventid INTEGER)
USING (
eventid IN (SELECT eventid FROM tickit_sales_redshift WHERE qtysold <3)
);
ATTACH RLS POLICY policy_events ON tickit_event_redshift TO ROLE analyst;
ATTACH RLS POLICY policy_events ON target_schema.target_event_table TO ROLE consumer;