Le superutilisateur n'est pas autorisé à se connecter


32

J'ai créé un portail de superutilisateur avec la commande suivante

create role portal with superuser password 'portal'

Lorsque j'ai essayé de me connecter à postgres avec l'utilisateur du portail, l'erreur suivante apparaît dans les rails.

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

Je ne peux pas suivre ce qui se passe.

Bien sûr, je peux modifier l'utilisateur avec la commande de connexion pour permettre à l'utilisateur du portail de se connecter. J'aimerais comprendre pourquoi le super utilisateur ne peut pas se connecter.


2
Parce qu'un rolene peut jamais se connecter. Vous auriez dû l'utiliser create usersi vous voulez quelque chose qui puisse se connecter.
a_horse_with_no_name

1
@a_horse_with_no_name Pour être précis, il n'y a pas de différence entre un rôle et un utilisateur, mais entre CREATE ROLEet CREATE USER, voir la réponse de Craig.
dezso

Réponses:


57

Vous n'avez pas précisé le LOGINdroit:

ALTER ROLE portal WITH LOGIN;

Si vous utilisez au CREATE USERlieu de CREATE ROLEla LOGINdroite est accordée automatiquement; sinon, vous devez le spécifier dans la WITHclause de la CREATEdéclaration.

Les superutilisateurs n'ont pas le LOGINdroit en soi ; une vérification des autorisations est toujours effectuée pour le superutilisateur pour ce droit. La raison en est que vous pouvez avoir un rôle de superutilisateur SET ROLE, mais ne pouvez pas être connecté aussi directement.


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

Bienvenue sur le site! Votre réponse manque d'explication - si vous regardez autour de vous, les bonnes réponses vous disent toujours non seulement quoi mais également pourquoi faire. Dans cette perspective, qu'est-ce que votre réponse ajoute à celle de Craig?
dezso
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.