Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 22/05/2017 12:01:30
- superette
- Membre
pg_ident.conf et pg_hba.conf
Bonjour,
Les deux fichiers stipulés en objet contiennent les informations suivantes :
pg_ident.conf :
# MAPNAME SYSTEM-USERNAME PG-USERNAME
mappingroot root postgres
pg_hba.conf :
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer map=mappingroot
local all all peer
La configuration a été rechargée plusieurs fois (select pg_reload_conf() ; )
Lorsque, connectée avec l'utilisateur root, je tente de me connecter à PostgreSQL, j'obtiens l'erreur suivante :
root@bobbynette:~# psql -p 5433
psql: FATAL: role "root" does not exist
Je pensais que justement, avec l'association ident, root allait être considéré comme s'il était postgres, et donc que je n'avais pas à créer utilisateur et db dans l'instance concernée?
D'avance merci.
Dernière modification par superette (22/05/2017 12:02:38)
Hors ligne
#2 22/05/2017 12:18:16
- rjuju
- Administrateur
Re : pg_ident.conf et pg_hba.conf
Mise à part qu'une connexion depuis root me semble une mauvaise idée, il est quand même nécessaire de préciser l'utilisateur pour que le mapping se fasse (on peut tout à fait autoriser un utilisateur à prendre plusieurs identités).
Donc « psql -U postgres » devrait marcher (ou un export PGUSER=postgres dans le .bashrc).
Julien.
https://rjuju.github.io/
Hors ligne
#3 22/05/2017 13:29:18
- superette
- Membre
Re : pg_ident.conf et pg_hba.conf
Merci, c'est très clair et ça marche.
Je note le warning sur le fait que la connexion avec root est une mauvaise idée (mais pourquoi? puisqu'on peut dans tous les cas faire un su - postgres avec root ?)
@pluche !
Hors ligne
#4 22/05/2017 13:43:38
- rjuju
- Administrateur
Re : pg_ident.conf et pg_hba.conf
Au minimum pour éviter de se connecter en root si on n'a besoin que d'une connexion à postgres
Julien.
https://rjuju.github.io/
Hors ligne
#5 22/05/2017 16:08:58
- superette
- Membre
Re : pg_ident.conf et pg_hba.conf
Question subsidiaire
Si je définis mon fichier pg_hba.conf de cette manière :
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all perette peer map=perettemapping
local all perette peer map=rootmapping
# MAPNAME SYSTEM-USERNAME PG-USERNAME
rootmapping root perette
perettemapping sup perette
Et bien je ne peux pas utiliser la connexion avec root :
sup@bobbynette:~$ psql -p 5433 -U perette -d postgres
fonctionne très bien tandis qu'avec root cela retourne une erreur.
root@bobbynette:~# psql -p 5433 -U perette -d postgres
psql: FATAL: Peer authentication failed for user "perette"
C'est normal puisque pg_hba.conf est lu dans l'ordre et que les deux demandes vont matcher la première ligne et que peer map=perettemapping fonctionne seulement pour sup et pas pour root.
Ceci étant dit, du coup faut-il partir sur une seule association base/user par mapping d'utilisateur système ou il existe une manière de contourner ce truc ?
*Edit :
En rédigeant les fichier pg_ident.conf et pg_hba.conf de cette manière cela fonctionne :
# MAPNAME SYSTEM-USERNAME PG-USERNAME
perettemapping root perette
perettemapping sup perette
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all perette peer map=perettemapping
Dernière modification par superette (22/05/2017 16:22:51)
Hors ligne
Pages : 1