postgresql - Benutzer Berechtigungen für eine bestimmte Datenbank
PostgreSQL-Version 9.1,
ich bin logging in Datenbank mit Standard-Benutzer: "postgres" und meine Datenbank enthält standardmäßig die Rolle "public"
Liste der Datenbank, die ich habe,
1.datenbank1
2.database2
3.database3
nun, ich brauche zum erstellen einer Benutzer "newuser" die haben nur das Privileg von "database2", es sollte kein login in andere Datenbanken.
ich habe versucht, mit dieser syntax
create role newuser with login nosuperuser nocreatedb nocreaterole noinherit password 'newpassword';
revoke all privileges on database database1, database3 from newuser;
aber immer noch die "newuser" können sich in andere Datenbank(datenbank1/database3) und Sie können wählen Sie Tabellen aus anderen Schemas. (Tabellen in der öffentlichkeit-schema nicht aufgeführt)
bitte, jemand, erklären Sie mir die richtige Vorgehensweise, um einen Benutzer erstellen und erteilen Berechtigungen für Sie.
ich brauche ein Benutzer alle Rechte auf eine bestimmte Datenbank nur, er soll sich nicht anmelden, um andere Datenbank 🙂
InformationsquelleAutor MAHI | 2012-06-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie versucht, zu widerrufen, Privileg zu verbinden zu einer Datenbank? Sollte dies verbieten, weitere Operationen auf der Datenbank.
Nach ein wenig Graben, wurde es offensichtlich, warum der oben nicht funktioniert. Vielleicht ist das einntwort von Tom Lane wird Ihnen eine bessere Lösung.
habe ein wenig Forschung, check out den link mit einer Antwort in der mailing-Liste.
Ich denke, das ist eine logische Erklärung in der Tat @DrColossos. In jedem Fall ist es einen Versuch Wert.
Sie müssen auch zu widerrufen, herstellen von öffentlichkeit
InformationsquelleAutor DrColossos
Können Sie entfernen von Berechtigungen von Benutzern auf Datenbank ausgeführt.
REVOKE ALL PRIVILEGES ON DATABASE "database_name" from username;
InformationsquelleAutor Jonathan Haar
Standardmäßig alle
public
scemas werden für reguläre (nicht-superuser). Um zu verhindern, dass diese Anmeldung als superuser und den Befehl ausgeben:InformationsquelleAutor TranslucentCloud
Nun, wie ich es immer Tue dies ist über die
pg_hba.conf
, obwohl ich vermute, es möglich sein sollte, in der Weise, die Sie versuchen, wie gut.Würde man erwarten, widerrufen Sie alle Privilegien zu verweigern, die nichts mit den aufgeführten Personen. Also keine verbindungen, geschweige denn tatsächlich die Auswahl. Könnte es etwas offensichtlich, dass wir vergessen hier.
Jedenfalls, dies sollte einfach zu beheben, mithilfe der Konfigurations-Datei. Fügen Sie die
newuser
und nur Liste die Datenbank aus, die Sie zulassen möchten es. Es wird wirksam verweigern verbindungen von diesem Benutzer zu einer anderen Datenbank. Offensichtlich verwenden Sie diese zusätzlich zu den Berechtigungen einrichten, die Sie bereits haben.Ich weiß nicht, ich würde nicht erwarten, dass es die einzige Möglichkeit sein. Wenn ich etwas Freizeit haben, heute Abend erstelle ich eine test-situation auf meinem lokalen Postgres server. Wenn ich es auf der Arbeit w/o-der pg_hba.conf ändern, werde ich Sie wissen lassen 🙂
ok danke, werde ich auch suchen für einige option
InformationsquelleAutor pyrocumulus