Wie kann ich regulären Benutzern der Amazon-Redshift-Datenbank die Berechtigung erteilen, Daten in Systemtabellen von anderen Benutzern für meinen Cluster anzuzeigen?

Lesedauer: 2 Minute
0

Ich kann in meinem Amazon-Redshift-Cluster keine Daten anzeigen, die von anderen Benutzern in Systemtabellen erzeugt wurden. Wie kann ich mir die Tabellen ansehen?

Kurzbeschreibung

Standardmäßig haben reguläre Benutzer von Amazon Redshift keine Berechtigung, die Daten anderer Benutzer einzusehen. Nur Amazon-Redshift-Datenbank-Superuser haben die Berechtigung, alle Datenbanken anzuzeigen.

Lösung

Sie können den Parameter SYSLOG ACCESS mit UNRESTRICTED-Zugriff hinzufügen, damit der reguläre Benutzer die von anderen Benutzern erzeugten Daten in Systemtabellen einsehen kann.

Hinweis: Normale Benutzer mit SYSLOG ACCESS können keine Superuser-Tabellen einsehen. Nur Superuser können andere Superuser-Tabellen einsehen.

1.    Verbinden Sie sich mit der Amazon-Redshift-Datenbank als Superuser.

2.    Führen Sie den SQL-Befehl ALTER USER ähnlich dem folgenden aus:

test=# ALTER USER testuser WITH SYSLOG ACCESS UNRESTRICTED;
ALTER USER

Hinweis: Die erforderlichen Berechtigungen für ALTER USER sind Superuser, Benutzer mit der Berechtigung ALTER USER und Benutzer, die ihre eigenen Passwörter ändern möchten.

Der normale Benutzer hat jetzt SYSLOG ACCESS mit UNRESTRICTED-Zugriff.

3.    Trennen Sie die Verbindung zur Amazon-Redshift-Datenbank als Superuser.

4.    Verbinden Sie sich mit der Amazon-Redshift-Datenbank als regulärer Benutzer, der SYSLOG ACCESS mit UNRESTRICTED-Zugriff hat.

5.    Testen Sie den Zugriff der regulären Benutzer, indem Sie einen SQL-Befehl ähnlich dem folgenden ausführen:

test=> select * from stv_inflight;
-[ RECORD 1 ]--------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
userid                     | 100
slice                      | 12811
query                      | 3036
label                      | default                                  
xid                        | 35079530
pid                        | 1073746910
starttime                  | 2022-09-15 07:09:15.894317
text                       | select * from my_schema.dw_lu_tiers_test a, my_schema.dw_lu_tiers_test;                         
       
suspended                  | 0
insert_pristine            | 0
concurrency_scaling_status | 0
-[ RECORD 2 ]--------------+---------------------------------------------------------------------------------------------------------------------------------------------------
userid                     | 181
slice                      | 12811
query                      | 3038
label                      | default
xid                        | 35079531
pid                        | 1073877909
starttime                  | 2022-09-15 07:09:17.694285
text                       | select * from stv_inflight;                                       
                                     
suspended                  | 0
insert_pristine            | 0
concurrency_scaling_status | 0

In der Beispielausgabe sehen Sie, dass der normale Benutzer jetzt Zugriff auf eine andere Benutzertabelle hat.


AWS OFFICIAL
AWS OFFICIALAktualisiert vor einem Jahr