Vous n'êtes pas identifié(e).
Pages : 1
Bonjour, (désolé pour le long roman qui va suivre mais j'ai vraiment besoin d'aide),
Je suis débutante sur Postgres/postgis et pg admin. J'étais déjà venu sur ce forum il y a 2 semaines. Depuis j'ai un autre blocage.
Mon environnement : PostgresSQL 10 (64 b)
pg admin 4 v3
Windows 7
Ce que je veux faire : Je suis technicien SIG et je veux qu'un collègue de bureau (appelons le Bernard) puisse se connecter à la BD avec pg admin et depuis QGIS. Je n'y arrive pas.
Je me suis renseignée et ai compris (sans doute) que tout devaient se passer autour des fichiers postgresSQL.conf, pg_hba.conf.
Mes hypothèses (de débutante) :
- Doit-on créer "Bernard" dans Pg admin via "Login/group roles, et paramétrer des choses (dans paramètres, privileges...) ?
- Puis rajouter une ligne dans pg_hba.conf : user = Bernard, method= md5 OU password ? (si c'est cela j'ai déjà essayé, une fois la ligne produite, impossible de me reconnecter à ma BD et surtout au serveur Pg admin accueillant la BD)
Les infos complémentaires :
Mon serveur sous pg admin :
-host name/adress : 127.0.0.1 (seule adresse avec laquelle je réussie à créer ma BD, déjà essayé avec l'Ipv4 de mon PC portable de boulot> pas réussi, en prenant bien sur le soin de modifier postgreSQL.conf et pg_hba.conf et le fameux listen_adress)
- Port : 5432
- Maintenance database : postgres
- username : postgres
FICHIER PostgreSQL.conf (seulement la partie connection et authentication)
CONNECTIONS AND AUTHENTICATION
#------------------------------------------------------------------------------
# - Connection Settings -
listen_addresses = '*' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
port = 5432 # (change requires restart)
max_connections = 100 # (change requires restart)
#superuser_reserved_connections = 3 # (change requires restart)
#unix_socket_directories = '' # comma-separated list of directories
# (change requires restart)
#unix_socket_group = '' # (change requires restart)
#unix_socket_permissions = 0777 # begin with 0 to use octal notation
# (change requires restart)
#bonjour = off # advertise server via Bonjour
# (change requires restart)
#bonjour_name = '' # defaults to the computer name
# (change requires restart)
# - Security and Authentication -
#authentication_timeout = 1min # 1s-600s
#ssl = off
#ssl_ciphers = 'HIGH:MEDIUM:+3DES:!aNULL' # allowed SSL ciphers
#ssl_prefer_server_ciphers = on
#ssl_ecdh_curve = 'prime256v1'
#ssl_dh_params_file = ''
#ssl_cert_file = 'server.crt'
#ssl_key_file = 'server.key'
#ssl_ca_file = ''
#ssl_crl_file = ''
#password_encryption = md5 # md5 or scram-sha-256
#db_user_namespace = off
#row_security = on
# GSSAPI using Kerberos
#krb_server_keyfile = ''
#krb_caseins_users = off
# - TCP Keepalives -
# see "man 7 tcp" for details
#tcp_keepalives_idle = 0 # TCP_KEEPIDLE, in seconds;
# 0 selects the system default
#tcp_keepalives_interval = 0 # TCP_KEEPINTVL, in seconds;
# 0 selects the system default
#tcp_keepalives_count = 0 # TCP_KEEPCNT;
# 0 selects the system default
Le fichier pg_hba.conf (désolé là c'est tout le fichier)
PostgreSQL Client Authentication Configuration File
# ===================================================
#
# Refer to the "Client Authentication" section in the PostgreSQL
# documentation for a complete description of this file. A short
# synopsis follows.
#
# This file controls: which hosts are allowed to connect, how clients
# are authenticated, which PostgreSQL user names they can use, which
# databases they can access. Records take one of these forms:
#
# local DATABASE USER METHOD [OPTIONS]
# host DATABASE USER ADDRESS METHOD [OPTIONS]
# hostssl DATABASE USER ADDRESS METHOD [OPTIONS]
# hostnossl DATABASE USER ADDRESS METHOD [OPTIONS]
#
# (The uppercase items must be replaced by actual values.)
#
# The first field is the connection type: "local" is a Unix-domain
# socket, "host" is either a plain or SSL-encrypted TCP/IP socket,
# "hostssl" is an SSL-encrypted TCP/IP socket, and "hostnossl" is a
# plain TCP/IP socket.
#
# DATABASE can be "all", "sameuser", "samerole", "replication", a
# database name, or a comma-separated list thereof. The "all"
# keyword does not match "replication". Access to replication
# must be enabled in a separate record (see example below).
#
# USER can be "all", a user name, a group name prefixed with "+", or a
# comma-separated list thereof. In both the DATABASE and USER fields
# you can also write a file name prefixed with "@" to include names
# from a separate file.
#
# ADDRESS specifies the set of hosts the record matches. It can be a
# host name, or it is made up of an IP address and a CIDR mask that is
# an integer (between 0 and 32 (IPv4) or 128 (IPv6) inclusive) that
# specifies the number of significant bits in the mask. A host name
# that starts with a dot (.) matches a suffix of the actual host name.
# Alternatively, you can write an IP address and netmask in separate
# columns to specify the set of hosts. Instead of a CIDR-address, you
# can write "samehost" to match any of the server's own IP addresses,
# or "samenet" to match any address in any subnet that the server is
# directly connected to.
#
# METHOD can be "trust", "reject", "md5", "password", "scram-sha-256",
# "gss", "sspi", "ident", "peer", "pam", "ldap", "radius" or "cert".
# Note that "password" sends passwords in clear text; "md5" or
# "scram-sha-256" are preferred since they send encrypted passwords.
#
# OPTIONS are a set of options for the authentication in the format
# NAME=VALUE. The available options depend on the different
# authentication methods -- refer to the "Client Authentication"
# section in the documentation for a list of which options are
# available for which authentication methods.
#
# Database and user names containing spaces, commas, quotes and other
# special characters must be quoted. Quoting one of the keywords
# "all", "sameuser", "samerole" or "replication" makes the name lose
# its special character, and just match a database or username with
# that name.
#
# This file is read on server startup and when the server receives a
# SIGHUP signal. If you edit the file on a running system, you have to
# SIGHUP the server for the changes to take effect, run "pg_ctl reload",
# or execute "SELECT pg_reload_conf()".
#
# Put your actual configuration here
# ----------------------------------
#
# If you want to allow non-local connections, you need to add more
# "host" records. In that case you will also need to make PostgreSQL
# listen on a non-local interface via the listen_addresses
# configuration parameter, or via the -i or -h command line switches.
# TYPE DATABASE USER ADDRESS METHOD
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
host all all ::1/128 trust
# Allow replication connections from localhost, by a user with the
# replication privilege.
host replication all 127.0.0.1/32 trust
host replication all ::1/128 md5
Merci d'avance pour vos réponses (si vous êtes arrivés au bout de mon "SOS")
Hors ligne
bonjour,
Si notre ami Bernard veut se connecter à distance, dans le pg_hba.conf la ligne :
host all all 127.0.0.1/32 trust
n'autorise que les connexions locales (127.0.0.1).
Il faut donc la modifier pour autoriser une ou plusieurs (ou toutes) IP distantes (et faire un reload).
En plus il manque la ligne "local" dans le pg_hba.conf (pour les connexions directement sur le serveur) qui pourrait être :
local all all trust
Cordialement,
Sébastien.
Hors ligne
Bonjour,
Merci de votre réponse.
"Si notre ami Bernard veut se connecter à distance, dans le pg_hba.conf la ligne :
host all all 127.0.0.1/32 trust
n'autorise que les connexions locales (127.0.0.1).
Il faut donc la modifier pour autoriser une ou plusieurs (ou toutes) IP distantes (et faire un reload)."
Cela veut il dire que je dois refaire une BD avec un "host name/adress" différent (celui du serveur de mon entreprise?) et modifier en conséquence les info dans pg_hba.conf ? (j'avoue ne pas être trop calée dans ces choses là. Voilà pourquoi j'ai dit que j'étais technicien SIG, sans doute que cela est + le travail d'un informaticien mais bon... ?)
Hors ligne
il faut modifier le pg_hba.conf pour que ça colle avec les connexions que vous souhaitez autoriser et qui correspondent avec les noms de base et de rôles qui existent.
bon courage.
Dernière modification par ruizsebastien (02/10/2018 12:00:52)
Cordialement,
Sébastien.
Hors ligne
Bonjour,
Merci de votre réponse.
Sans vouloir qu'on me "materne" est ce que quelqu'un peut me donner un exemple d'écriture de pg_hba.conf svp ? (je rappelle que je ne suis pas experte, que j'ai déjà fais des tests sur pg_hba.conf en rajoutant des adresses et des infos mais que cela n'a pas fonctionné, d'ailleurs j'ai dû ré installer pg admin parce que pg_hba.conf avait sans doute été trop modifié et que plus rien ne s'ouvrait, d'où ma présence ici).
Après cela serait pê plus simple de prendre les coordonnées de qq de disponible pour que les échanges soient plus faciles (mais après je propose juste, sans vous vexer)
je vous remercie
Hors ligne
un exemple :
avec ces lignes vous autorisez toutes les IP, tous les rôles, dans toutes les bases, en local et à distance en mode trust (pas de contrôle de mot de passe).
C'est un bon moyen de voir déjà si ça marche et s'il n'y a pas de problème ailleurs.
Il ne faut que ces lignes dans pg_hba.conf et faire un reload de la conf.
############################################
#connexion socket unix :
local all all trust
#connexion TCP/IP ipv4 :
host all all 0.0.0.0 0.0.0.0 trust
#connexion TCP/IP ipv6 :
host all all ::1/128 trust
############################################
Cordialement,
Sébastien.
Hors ligne
sinon prenez le temps d'étudier la doc ici :
(c'est bien expliqué et en français)
Cordialement,
Sébastien.
Hors ligne
Bonjour, Sur pg admin et QGIS voici le message d'erreur :
could not connect to server: Connection refused (0x0000274D/10061) Is the server running on host "127.0.0.1" and accepting TCP/IP connections on port 5432?
Je vais essayer avec 2 adresses locales (sait on jamais...)
Hors ligne
pour récapituler :
votre instance (server) postgresql est sur une machine A (windows).
Avez-vous vérifié que l'instance (donc le service windows) est démarré ?
Votre tentative de connexion a bien lieu en local, depuis la machine windows A ?
En gros pgadmin, QGIS et postgresql sont sur le même poste ?
Cordialement,
Sébastien.
Hors ligne
oui c'est ça tout est sur le même poste
Hors ligne
A mon avis votre service est arrêté.
Cordialement,
Sébastien.
Hors ligne
bonjour,
d'accord merci. Comment dois je procéder pour démarrer le service windows svp ?
Hors ligne
bonjour, sur mon ordi de l'entreprise la version Pg admin 4 ne vient pas (alors quelle est installée sur mon disque C) : The application server could not be contacted
Par contre Pg admin 4 v3 s'allume bien (mais dans google chrome, là ou est ma BD test)
Hors ligne
difficile de vous aider à distance surtout sur un windows...
J'avoue que je ne pratique pas trop le postgresql sur windows.
Avez-vous regarder dans les services windows ?
Cordialement,
Sébastien.
Hors ligne
Je suis technicien SIG et je veux qu'un collègue de bureau (appelons le Bernard) puisse se connecter à la BD avec pg admin et depuis QGIS. Je n'y arrive pas.
Je me suis renseignée et ai compris (sans doute) que tout devaient se passer autour des fichiers postgresSQL.conf, pg_hba.conf.
Un élément essentiel pour configurer ça est l'origine de la connexion. Cet utilisateur distant doit pouvoir se connecter à partir d'où, et est-ce que l'entreprise/organisation où se trouve votre PC autorise effectivement les connexions vers votre PC depuis cet extérieur? Si cet extérieur est "tout l'Internet" généralement la réponse à la 2eme question est Non, parce que la réponse Oui est très problématique pour la sécurité.
Doit-on créer "Bernard" dans Pg admin via "Login/group roles, et paramétrer des choses (dans paramètres, privileges...) ?
C'est un choix à faire. Soit vous communiquez à l'autre utilisateur un login déjà existant, celui que vous utilisez vous-même, ce qui simplifie beaucoup les choses mais lui donne les mêmes droits que vous. Soit il a un login personnel mais il faudra dans ce cas gérer ses droits d'accès aux objets en base avec des commandes GRANT, ce qui peut être assez fastidieux.
@DanielVerite
http://blog-postgresql.verite.pro/
Hors ligne
Pages : 1