Dans postgres, comment puis-je changer un utilisateur existant en superutilisateur? Je ne veux pas supprimer l'utilisateur existant, pour diverses raisons.
# alter user myuser ...?
ALTER USER myuser WITH SUPERUSER;
Pour développer ce qui précède et faire une référence rapide:
ALTER USER username WITH SUPERUSER;
ALTER USER username WITH NOSUPERUSER;
ALTER USER username CREATEDB;
Vous pouvez également utiliser CREATEROLE
et CREATEUSER
pour autoriser les privilèges d'un utilisateur sans en faire un superutilisateur.
$ su - postgres
$ psql
$ \du;
pour voir l'utilisateur sur la base de données
sélectionnez l'utilisateur que vous voulez être superutilisateur et:
$ ALTER USER "user" with superuser;
Exécuter cette commande
alter user myuser with superuser;
Si vous voulez voir l'autorisation d'un utilisateur, exécutez la commande suivante
\du
Il peut arriver que la mise à niveau vers un superutilisateur ne soit pas une bonne option. Donc, en dehors du super utilisateur, il y a beaucoup d'autres options que vous pouvez utiliser. Ouvrez votre terminal et tapez ce qui suit:
$ 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
Énumérant également la liste des options
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'
Donc, en ligne de commande, cela ressemblera à
postgres=# ALTER USER my_user WITH LOGIN
OU utilisez un mot de passe crypté.
postgres=# ALTER USER my_user WITH ENCRYPTED PASSWORD '5d41402abc4b2a76b9719d911017c592';
OU révoquer les autorisations après une heure spécifique.
postgres=# ALTER USER my_user WITH VALID UNTIL '2019-12-29 19:09:00';
modifier le nom d'utilisateur superutilisateur;
Vous pouvez créer un SUPERUSER
ou promouvoir USER
Pour empêcher la commande de se connecter, insérez un espace devant elle, mais vérifiez que votre système prend en charge cette option.
$ Sudo -u postgres psql -c "CREATE USER my_user WITH PASSWORD 'my_pass';"
pour votre cas ou
$ Sudo -u postgres psql -c "CREATE USER my_user WITH SUPERUSER PASSWORD 'my_pass';"