Wie gewähren Sie einem beliebigen Benutzer Lese-/Auswahlzugriff auf alle Funktionen und Sichten?So gewähren Sie einem Benutzer alle Berechtigungen für Sichten
Ich benutze psql --user=postgres -d mydb -f myview.sql
mehrere Funktionen und Ansichten zu erstellen, und dann laufe ich:
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;
alle Privilegien gewährt wurde, würde ich myuser
erwarte nun Zugang haben zu den Funktionen und Ansichten von den postgres
Benutzern erstellt . Wenn ich jedoch versuche, mit myuser
auf sie zuzugreifen, erhalte ich den Fehler "Berechtigung verweigert für Relation ...". Warum ist das?
Es dauerte eine Stunde, um zu erkennen, dass "GRANT SELECT auf allen Tabellen in SCHEMA öffentlichen TO myuser;" macht nur Sinn, wenn dieser Befehl ausgeführt wird, wenn der Benutzer * CONNECTED * an diese Datenbank sendet. Wenn nicht, tut es nichts (oder es gibt dem Benutzer keine Auswahlberechtigung). Verwenden Sie in der Shell des Superusers \ c Datenbankname. – marcel
@marcel: Ich habe eine Notiz hinzugefügt, um die Leute daran zu erinnern. –
Dies erteilt dem Benutzer keine Berechtigung für Sequenzen. – Cerin