Superutente non è autorizzato ad accedere


32

Ho creato un portale superutente con il seguente comando

create role portal with superuser password 'portal'

Quando ho provato ad accedere a Postgres con l'utente del portale, visualizzo il seguente errore nelle rotaie.

FATAL:  role "portal" is not permitted to log in

Non riesco a seguire quello che sta succedendo.

ovviamente posso modificare l'utente con il comando login per consentire all'utente del portale di accedere. Vorrei capire perché il superutente non può accedere.


2
Perché rolenon riesci mai ad accedere. Avresti dovuto usare create userse vuoi qualcosa che può accedere.
a_horse_with_no_name

1
@a_horse_with_no_name Per essere precisi, non c'è differenza tra un ruolo e un utente, ma c'è tra CREATE ROLEe CREATE USER, vedi la risposta di Craig.
dezso,

Risposte:


57

Non hai specificato il LOGINdiritto:

ALTER ROLE portal WITH LOGIN;

Se si utilizza CREATE USERinvece che CREATE ROLEil LOGINdiritto è concesso automaticamente; altrimenti è necessario specificarlo nella WITHclausola CREATEdell'istruzione.

I superutenti non hanno intrinsecamente il LOGINdiritto; per questo superutente viene comunque eseguito un controllo delle autorizzazioni per il superutente. La ragione di ciò è che puoi avere un ruolo di superutente che puoi SET ROLE, ma non puoi connetterti come direttamente.


4
CREATE ROLE 'portal' WITH LOGIN SUPERUSER PASSWORD 'portal';

Benvenuti nel sito! La tua risposta non ha una spiegazione - se ti guardi intorno, le buone risposte ti dicono sempre non solo cosa, ma anche perché . Alla luce di ciò, cosa aggiunge la tua risposta a quella di Craig?
dezso
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.