2016-11-17 4 views
0

lasse ich Redshift Benutzerformular löschen versuche aber es funktioniert nicht immer mit der gleichen NachrichtBenutzer kann nicht von Redshift

Benutzer „XXX“ kann nicht gelöscht werden, weil der Benutzer auf einige Objekt ein Privileg hat;

eine Google-Suche auf ihn folgend fand ich heraus, dass ich die Berechtigungen des Benutzers zu widerrufen müssen, damit ich mehr widerrufe Abfragen ausführen, aber ich immer noch mit der gleichen Nachricht fehlschlagen:

Die Abfragen Ich lief:

revoke all on schema YYY from XXX; 
revoke usage on schema ZZZ from XXX; 
revoke all on database LLL from XXX; 

Eine Idee, warum ich immer noch diese Fehlermeldung?

+1

versuchen Kaskade Option zu sehen, widerrufen wird verbreitet – kadalamittai

+0

@kadalamittai - Danke, aber es hat nicht geholfen. Ich bekomme immer noch die gleiche Nachricht – folky

+0

Beantwortet in https://dba.stackexchange.com/questions/143938/drop-user-in-redshift-which-has-privilege-on-some-object –

Antwort

1

bereitstellen Bitte unten Ansicht von Github "v_get_obj_priv_by_user" -Link: https://github.com/awslabs/amazon-redshift-utils/blob/master/src/AdminViews/v_get_obj_priv_by_user.sql

Ist das erledigt, gehen Sie wie folgt Schritte

1) a_user --- Benutzer,

B_user fallen zu lassen hat --- Tabelleneigentümer der alten Tabelle müssen diesem Benutzer zugeordnet werden.

Wenn Sie Besitzer aller Tabellen zu ändern gehören zu a_user, dann

wählen Schemaname von pg_tables wo tableowner wie ‚a_user‘;

Für obigen Tabellen abgerufen laufen

alter table schemaName.tabellenName Besitzer B_user;

2) Entziehen alle auf Schema, in dem a_user einige Privilegien hat

select distinct schema von admin.v_get_obj_priv_by_user wo usename wie 'a_user';

Für obigen Tabellen abgerufen laufen

revoke alle auf Schema XXXX von a_user;

3) Entziehen alle auf den Tischen, wo a_user einige Privilegien hat

select distinct Tabellen aus admin.v_get_obj_priv_by_user wo usename wie 'a_user';

Für obigen Tabellen abgerufen laufen

revoke alle auf alle Tabellen in Schema XXXX von a_user;

4) Benutzerbenutzername löschen;

** Wenn sich zwei Datenbanken in einem Cluster befinden, tun Sie dies für beide Datenbanken.

Verwandte Themen