postgres: aggiornare un utente per diventare un superutente?


644

In Postgres, come posso cambiare un utente esistente per diventare un superutente? Non voglio eliminare l'utente esistente, per vari motivi.

# alter user myuser ...?

Risposte:


1262
ALTER USER myuser WITH SUPERUSER;

Puoi leggere di più nella Documentazione


157
l'operazione opposta è ALTER USER myuser WITH NOSUPERUSER
d.raev il

2
e come posso rilevare se myuser è attualmente un superutente?
magistralmente

20
SELECT rolname, rolsuper FROM pg_roles;a @masterweily
caulfield

6
Ricevo: ERRORE: deve essere un superutente per modificare i superutenti
Stepan Yakovenko,

15
@masterweily Puoi fare \duper elencare tutti gli utenti / ruoli.
XåpplI'-I0llwlg'I -

63

Per espandere quanto sopra e fare un riferimento rapido:

  • Per rendere un utente un SuperUser: ALTER USER username WITH SUPERUSER;
  • Per rendere un utente non più un SuperUser: ALTER USER username WITH NOSUPERUSER;
  • Per consentire all'utente di creare un database: ALTER USER username CREATEDB;

Puoi anche utilizzare CREATEROLEe CREATEUSERper consentire i privilegi di un utente senza renderli un superutente.

Documentazione


27

$ su - postgres
$ psql
$ \du;per vedere l'utente su db
selezionare l'utente che si desidera essere superutente e:
$ ALTER USER "user" with superuser;


in questo caso specifico, devi inserire il nome utente in virgole, ad esempioALTER USER "user" WITH SUPERUSER;
Carlos.V

9

Esegui questo comando

alter user myuser with superuser;

Se si desidera visualizzare l'autorizzazione per un utente, eseguire il comando seguente

\du

8

A volte può essere l'aggiornamento a un superutente potrebbe non essere una buona opzione. Quindi a parte il superutente ci sono molte altre opzioni che puoi usare. Apri il tuo terminale e digita quanto segue:

$ 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

Elencando anche l'elenco di opzioni

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'

Quindi nella riga di comando sembrerà

postgres=# ALTER USER my_user WITH  LOGIN

O utilizzare una password crittografata.

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

O revoca le autorizzazioni dopo un determinato periodo di tempo.

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

4

Puoi creare SUPERUSERo promuovere USER, quindi per il tuo caso

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

o rollback

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

Per impedire la registrazione di un comando quando si imposta la password, inserire uno spazio bianco di fronte ad esso, ma verificare che il sistema supporti questa opzione.

$  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';"

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.