Wie man Schemas für Benutzer in Redshift versteckt
Heutzutage ist die Aktivität jeder Organisation mit einer großen Menge von Informationen verbunden, auf die eine breite Palette von Personen Zugriff hat. Folglich steigt die Komplexität, die Vertraulichkeit sensibler Daten zu gewährleisten, zusammen mit dem Wachstum des Datenvolumens, das in Unternehmen verarbeitet wird. Daher ist der Schutz von Daten vor unbefugtem Zugriff, vor unbefugter Modifikation oder einfach vor Zerstörung eine der Prioritäten. Datenmaskierung ist eine der effektiven Methoden zum Schutz wichtiger Informationen vor unbefugtem Zugriff.
Die Option “Hide Rows” des Data Sunrise Dynamic Masking erlaubt es Ihnen, bestimmte Regeln zu erstellen, um einen Teil der Daten vor einer bestimmten Gruppe von Benutzern zu verbergen, wobei die allgemeine Informationsstruktur erhalten bleibt und der Teil der Daten verfügbar bleibt, der für die Arbeit notwendig ist. Betrachten Sie als Beispiel, wie Dynamic Masking-Regeln mit der Option “Hide Rows” verwendet werden können, um spezifische Schemas in der Redshift-Datenbank vor einer Gruppe von Benutzern zu verstecken.
Die Informationen über die Schemas in der DB sind in der Systemtabelle <your_database>.pg_catalog.pg_namespace
enthalten. Indem Sie entsprechende Bedingungen auf die Spalten dieser Tabelle anwenden, können Sie einige der Schemas vor bestimmten Benutzern verbergen.

Stellen Sie sich vor, Sie haben Schemas “test1” und “test2” und möchten, dass nur diese 2 Schemas für “user1”, “user2” und “user3” sichtbar sind. Im Folgenden finden Sie eine Schritt-für-Schritt-Anleitung, wie Sie dieses Szenario umsetzen können:
- Navigieren Sie zu Masking –> Dynamic Masking Rules und klicken Sie dann auf Regel hinzufügen.
- Füllen Sie auf der Seite “Regeldetails” die erforderlichen Felder wie Name, Datenbanktyp und Instanz aus. Aktivieren Sie das Kontrollkästchen Log Event in Storage, um Ereignisse im Abschnitt Masking Events zu sehen. Andere Felder sind optional und können nach Bedarf ausgefüllt werden.
- Fügen Sie im Abschnitt Sitzungsfilter eine Bedingung hinzu, für die die Regel angewendet werden soll, z. B. DB Benutzer, wenn die Regel für bestimmte Benutzer gilt, oder DB Benutzergruppe für eine Gruppe von Benutzern innerhalb der Gruppe.
- Klicken Sie in den Maskierungseinstellungen auf Auswählen im Bereich Tabellen, in denen Zeilen verborgen werden sollen, das Modalfenster “Check Columns” wird angezeigt.
- Geben Sie im linken Teil des Modalfensters “Check Columns” (a) den Namen der Datenbank(en) ein, für die die Regel angewendet werden soll, (b) geben Sie “pg_catalog” im Feld Schemas finden ein, (c) geben Sie “pg_namespace” im Feld Tabellen finden ein und klicken Sie dann auf die Schaltfläche Filtern. Der Filter wird auf das Menü “Objekt-Explorer” angewendet, aktivieren Sie das Kontrollkästchen neben der Tabelle “pg_namespace” und klicken Sie auf Fertig.
- Geben Sie im Feld Spaltenbedingung nspname LIKE ‘%test%’ ein und speichern Sie die Regel.
- Verbinden Sie sich über einen Proxy mit der Redshift-Datenbank im Namen von “user1”, wie in der Dynamic Masking-Regel angegeben.
- Bei der Verbindung zur Datenbank sieht dieser “user1” nur die Schemas “test1” und “test2”.
- Um alle Schemas außer “public” für “user3” zu verbergen, geben Sie die folgende Bedingung an: nspowner = 1 und nspname = ‘public’.
- In diesem Fall wird für user3 nur das “public”-Schema sichtbar sein.
- Um alle Schemas zu verbergen, verwenden Sie die Bedingung nspowner is NULL, was standardmäßig falsch ist.
In diesem Fall sehen die in der DB Benutzergruppe enthaltenen Benutzer beim Verbinden mit der Datenbank über einen Proxy überhaupt keine Schemas.