735 Stimmen

postgres: Upgrade eines Benutzers zum Superuser?

Wie kann ich in Postgres einen bestehenden Benutzer in einen Superuser ändern? Ich möchte den bestehenden Benutzer aus verschiedenen Gründen nicht löschen.

# alter user myuser ...?

1416voto

Quassnoi Punkte 396418
ALTER USER myuser WITH SUPERUSER;

Weitere Informationen finden Sie auf der Dokumentation für ALTER USER

75voto

ZZ9 Punkte 2117

Um die obigen Ausführungen zu ergänzen und einen schnellen Überblick zu geben:

  • Um einen Benutzer zu einem SuperUser zu machen: ALTER USER username WITH SUPERUSER;
  • Um einen Benutzer nicht mehr als SuperUser zu führen: ALTER USER username WITH NOSUPERUSER;
  • Dem Benutzer nur die Möglichkeit geben, eine Datenbank zu erstellen: ALTER USER username CREATEDB;

Sie können auch Folgendes verwenden CREATEROLE y CREATEUSER um einem Benutzer Privilegien zu gewähren, ohne ihn zu einem Superuser zu machen.

Dokumentation

38voto

el fuser Punkte 554

$ su - postgres
$ psql
$ \du; für den Benutzer auf db sehen
wählen Sie den Benutzer, der Superuser sein soll, und:
$ ALTER USER "user" with superuser;

13voto

Sandip Debnath Punkte 715

Vielleicht ist das Upgrade auf einen Superuser nicht immer eine gute Option. Abgesehen vom Superuser gibt es also noch viele andere Optionen, die Sie nutzen können. Öffnen Sie Ihr Terminal und geben Sie das Folgende ein:

$ sudo su - postgres
[sudo] password for user: (type your password here)
$ psql
postgres@user:~$ psql
psql (10.5 (Ubuntu 10.5-1.pgdg18.04+1))
Type "help" for help.

postgres=# ALTER USER my_user WITH option

Außerdem wird die Liste der Optionen aufgelistet

SUPERUSER | NOSUPERUSER | CREATEDB | NOCREATEDB  | CREATEROLE | NOCREATEROLE |
CREATEUSER | NOCREATEUSER | INHERIT | NOINHERIT | LOGIN | NOLOGIN | REPLICATION|
NOREPLICATION | BYPASSRLS | NOBYPASSRLS | CONNECTION LIMIT connlimit | 
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'password' | VALID UNTIL 'timestamp'

In der Kommandozeile sieht das dann so aus

postgres=# ALTER USER my_user WITH  LOGIN

ODER verwenden Sie ein verschlüsseltes Passwort.

postgres=# ALTER USER my_user  WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';

ODER die Berechtigungen nach einer bestimmten Zeit widerrufen.

postgres=# ALTER USER my_user  WITH VALID UNTIL '2019-12-29 19:09:00';

10voto

Chetan kapoor Punkte 651

Führen Sie diesen Befehl aus

alter user myuser with superuser;

Wenn Sie die Berechtigung eines Benutzers sehen möchten, führen Sie folgenden Befehl aus

\du

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X