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 ...?
ALTER USER myuser WITH SUPERUSER;
So erweitern Sie das Obige und machen eine kurze Referenz:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
Sie können auch CREATEROLE
und CREATEUSER
verwenden, um einem Benutzer Berechtigungen zu gewähren, ohne ihn zum Superuser zu machen.
$ su - postgres
$ psql
$ \du;
für den Benutzer auf db
Wählen Sie den Benutzer aus, der Superuser sein soll, und:
$ ALTER USER "user" with superuser;
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
Möglicherweise ist ein Upgrade auf einen Superuser manchmal keine gute Option. Abgesehen vom Superuser 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
[email protected]:~$ psql
psql (10.5 (Ubuntu 10.5-1.pgdg18.04+1))
Type "help" for help.
postgres=# ALTER USER my_user WITH option
Auch die Liste der Optionen auflisten
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'
Also in der Kommandozeile wird es so aussehen
postgres=# ALTER USER my_user WITH LOGIN
ODER verwenden Sie ein verschlüsseltes Passwort.
postgres=# ALTER USER my_user WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';
ODER Berechtigungen nach einer bestimmten Zeit widerrufen.
postgres=# ALTER USER my_user WITH VALID UNTIL '2019-12-29 19:09:00';
alter user username superuser;
Sie können ein SUPERUSER
erstellen oder USER
bewerben.
m zu verhindern, dass der Befehl protokolliert wird, fügen Sie ein Leerzeichen vor dem Befehl ein. Stellen Sie jedoch sicher, dass Ihr System diese Option unterstützt.
$ Sudo -u postgres psql -c "CREATE USER my_user WITH PASSWORD 'my_pass';"
für Ihren Fall oder
$ Sudo -u postgres psql -c "CREATE USER my_user WITH SUPERUSER PASSWORD 'my_pass';"