Gewähren Sie Berechtigungen für eine bestimmte Datenbank in PostgreSQL

Ich bin von MySQL zu PostgreSQL gewechselt und habe eine Wand mit Benutzerrechten erreicht. Ich bin es gewohnt, einem Benutzer mit dem folgenden Befehl alle Berechtigungen für alle Tabellen einer Datenbank zuzuweisen:

# MySQL
grant all privileges on mydatabase.* to 'myuser'@'localhost' identified by 'mypassword';

Es scheint mir, dass die PostgreSQL 9.x-Lösung das Zuweisen von Berechtigungen zu einem "Schema" beinhaltet, aber der Aufwand, den ich benötige, um genau herauszufinden, welches SQL ausgegeben werden soll, erweist sich als übermäßig. Ich weiß, dass noch ein paar Stunden Recherche eine Antwort bringen werden, aber ich denke, jeder, der von MySQL zu PostgreSQL wechselt, kann davon profitieren, dass mindestens eine Seite im Web ein einfaches und vollständiges Rezept bereitstellt. Dies ist der einzige Befehl, den ich jemals für Benutzer ausgeben musste. Ich möchte lieber nicht für jede neue Tabelle einen Befehl ausgeben müssen.

Ich weiß nicht, welche Szenarien in PostgreSQL anders behandelt werden müssen, daher liste ich einige der Szenarien auf, mit denen ich in der Vergangenheit normalerweise umgehen musste. Angenommen, wir möchten nur Berechtigungen für eine einzelne Datenbank ändern, die bereits erstellt wurde.

(1a) Es wurden noch nicht alle Tabellen erstellt, oder (1b) die Tabellen wurden bereits erstellt.

(2a) Der Benutzer wurde noch nicht erstellt, oder (2b) der Benutzer wurde bereits erstellt.

(3a) Dem Benutzer wurden noch keine Berechtigungen zugewiesen, oder (3b) dem Benutzer wurden zuvor Berechtigungen zugewiesen.

(4a) Der Benutzer muss nur Zeilen einfügen, aktualisieren, auswählen und löschen, oder (4b) der Benutzer muss auch Tabellen erstellen und löschen können.

Ich habe Antworten gesehen, die allen Datenbanken alle Rechte gewähren, aber das ist nicht das, was ich hier will. Bitte, ich suche ein einfaches Rezept, obwohl mir auch eine Erklärung nichts ausmacht.

Ich möchte nicht allen Benutzern und allen Datenbanken Rechte gewähren, wie es die herkömmliche Verknüpfung zu sein scheint, da dieser Ansatz alle Datenbanken gefährdet, wenn ein Benutzer gefährdet wird. Ich hoste mehrere Datenbank-Clients und weise jedem Client ein anderes Login zu.

Es sieht so aus, als würde ich auch das brauchenUSAGE Privileg, die steigenden Werte von a zu erhaltenserial Spalte, aber ich muss es auf eine Art Sequenz gewähren. Mein Problem wurde komplexer.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage