web-dev-qa-db-fra.com

Le superutilisateur n'est pas autorisé à se connecter

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 à PostgreSQL avec l'utilisateur du portail, j'obtiens l'erreur suivante dans 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 login pour permettre à l'utilisateur du portail de se connecter. Je voudrais comprendre pourquoi le super utilisateur ne peut pas se connecter.

32
Antony

Vous n'avez pas spécifié le droit LOGIN:

ALTER ROLE portal WITH LOGIN;

Si tu utilises CREATE USER au lieu de CREATE ROLE le droit LOGIN est accordé automatiquement; sinon, vous devez le spécifier dans la clause WITH de l'instruction CREATE.

Les superutilisateurs n'ont pas intrinsèquement le droit LOGIN; 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 que vous pouvez SET ROLE à, mais ne peut pas être connecté comme directement.

57
Craig Ringer
CREATE ROLE 'portal' WITH LOGIN SUPERUSER PASSWORD 'portal';
4
Kit