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.
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.
CREATE ROLE 'portal' WITH LOGIN SUPERUSER PASSWORD 'portal';