Administrator nie może się zalogować


32

Utworzyłem portal administratora z następującą komendą

create role portal with superuser password 'portal'

Kiedy próbowałem zalogować się do postgres z użytkownikiem portalu, pojawia się następujący błąd w szynach.

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

Nie mogę śledzić tego, co się dzieje.

oczywiście mogę zmienić użytkownika za pomocą polecenia logowania, aby umożliwić użytkownikowi portalu logowanie. Chciałbym zrozumieć, dlaczego superużytkownik nie może się zalogować.


2
Ponieważ rolenigdy nie można się zalogować. Powinieneś był użyć, create userjeśli chcesz czegoś, co może się zalogować.
a_horse_w_na_name

1
@ a_horse_with_no_name Aby być dokładnym, nie ma różnicy między rolą a użytkownikiem, ale jest między CREATE ROLEi CREATE USER, patrz odpowiedź Craiga.
dezso

Odpowiedzi:


57

Nie określiłeś LOGINprawa:

ALTER ROLE portal WITH LOGIN;

Jeśli używasz CREATE USERzamiast CREATE ROLEw LOGINprawo jest przyznawane automatycznie; w przeciwnym razie musisz to określić w WITHklauzuli CREATEoświadczenia.

Administratorzy nie mają z natury LOGINprawa; dla tego użytkownika nadal wykonywana jest kontrola uprawnień administratora. Powodem tego jest to, że możesz mieć rolę administratora, do której możesz SET ROLE, ale nie można połączyć się bezpośrednio.


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

Witamy na stronie! Twoja odpowiedź nie ma wyjaśnienia - jeśli się rozejrzysz, dobre odpowiedzi zawsze mówią nie tylko co, ale także dlaczego . Mając to na uwadze, co twoja odpowiedź dodaje do odpowiedzi Craiga?
dezso,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.