Gibt es einen Einzeiler , der einem neuen Benutzer die SELECT-Berechtigungen für postgresql gewährt?
Etwas, das den folgenden Pseudocode implementieren würde:
GRANT SELECT ON TABLE * TO my_new_user;
permissions
sql
postgresql
user-management
Adam Matan
quelle
quelle
default privileges
in einem Schema festlegen, in dem Sie die Tabelle erstellen: postgresql.org/docs/current/static/…public
für den aktuellen DB aus, mit dem Sie verbunden sind.Meine (nicht einzeilige) Lösung:
Vom privilegierten Benutzer ausgeführt, funktionierte es wie ein Zauber.
quelle
Dies kann in zwei Schritten erfolgen.
Führen Sie diese Abfrage aus:
Ersatz:
$foo
= Benutzername, für den Sie Berechtigungen erteilen möchten$bar
,$baz
= Schema, für das Sie Berechtigungen erteilen möchten (kann nur "öffentlich" sein)Das wird Ihnen eine Liste von Abfragen geben, die die erforderlichen Berechtigungen generieren. Kopieren Sie die Ausgabe, fügen Sie sie in eine andere Abfrage ein und führen Sie sie aus.
quelle
Das habe ich benutzt:
Ich halte es für natürlicher, Formatierungen und Where-Klauseln in SQL durchzuführen.
quelle
Ich am Ende tun dies , und es funktionierte:
quelle
Ich arbeite mit Postgres 8.4 und um einem Benutzer alle Rechte zu geben, mache ich folgendes:
quelle
Eine Möglichkeit, dies zu beheben, besteht darin, eine gespeicherte Prozedur zu schreiben. Unglücklicherweise gibt es keinen Befehl "Allen Tabellen alles gewähren" oder so. Sie brauchen wirklich eine Prozedur oder ein externes Shell-Skript, damit dies funktioniert.
quelle
Das (einzeilige) Skript von Adam Matan ist großartig, wenn es viele Schemas gibt, aber es funktioniert nicht, wenn Schemanamen oder Tabellennamen Großbuchstaben oder Sonderzeichen enthalten.
Geänderte Version:
quelle