postgres: einen Benutzer zum Superuser upgraden?


643

Wie ändere ich in postgres einen vorhandenen Benutzer in einen Superuser? Ich möchte den vorhandenen Benutzer aus verschiedenen Gründen nicht löschen.

# alter user myuser ...?

Antworten:


1261
ALTER USER myuser WITH SUPERUSER;

Weitere Informationen finden Sie in der Dokumentation


157
die entgegengesetzte Operation ist ALTER USER myuser WITH NOSUPERUSER
d.raev

2
und wie kann ich feststellen, ob myuser derzeit superuser ist?
meisterhaft

20
SELECT rolname, rolsuper FROM pg_roles;zu @masterweily
Caulfield

6
Ich bekomme: FEHLER: muss Superuser sein, um Superuser zu ändern
Stepan Yakovenko

15
@masterweily Sie können \dualle Benutzer / Rollen auflisten .
XåpplI'-I0llwlg'I -

63

Um das oben Gesagte zu erweitern und eine Kurzreferenz zu erstellen:

  • So machen Sie einen Benutzer zu einem SuperUser: ALTER USER username WITH SUPERUSER;
  • So machen Sie einen Benutzer nicht länger zum SuperUser: ALTER USER username WITH NOSUPERUSER;
  • So lassen Sie den Benutzer nur eine Datenbank erstellen: ALTER USER username CREATEDB;

Sie können Benutzerberechtigungen auch verwenden CREATEROLEund CREATEUSERzulassen, ohne sie zu einem Superuser zu machen.

Dokumentation


27

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


In diesem speziellen Fall müssen Sie den Benutzernamen ins Koma setzen, BeispielALTER USER "user" WITH SUPERUSER;
Carlos.V

9

Führen Sie diesen Befehl aus

alter user myuser with superuser;

Wenn Sie die Berechtigung für einen Benutzer anzeigen möchten, führen Sie den folgenden Befehl aus

\du

8

Manchmal ist ein Upgrade auf einen Superuser möglicherweise keine gute Option. Abgesehen von Superusern gibt es also viele andere Optionen, die Sie verwenden können. Öffnen Sie Ihr Terminal und geben Sie Folgendes 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

Listen Sie auch die Liste der Optionen auf

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 es also 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 widerrufen Sie Berechtigungen nach einer bestimmten Zeit.

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

4

Sie können eine erstellen SUPERUSERoder fördern USER, also für Ihren Fall

$ sudo -u postgres psql -c "ALTER USER myuser WITH SUPERUSER;"

oder Rollback

$ sudo -u postgres psql -c "ALTER USER myuser WITH NOSUPERUSER;"

Fügen Sie ein Leerzeichen davor ein, um zu verhindern, dass ein Befehl beim Festlegen des Kennworts protokolliert wird. Überprüfen Sie jedoch, ob Ihr System diese Option unterstützt.

$  sudo -u postgres psql -c "CREATE USER my_user WITH PASSWORD 'my_pass';"
$  sudo -u postgres psql -c "CREATE USER my_user WITH SUPERUSER PASSWORD 'my_pass';"

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.