PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.1 » Interfaces client » libpq -- Bibliothèque C » Recherche LDAP des paramètres de connexion

32.18. Recherche LDAP des paramètres de connexion #

Si libpq a été compilé avec le support de LDAP (option --with-ldap du script configure), il est possible de récupérer les options de connexion comme host ou dbname via LDAP à partir d'un serveur central. L'avantage en est que, si les paramètres de connexion d'une base évolue, l'information de connexion n'a pas à être modifiée sur toutes les machines clientes.

La recherche LDAP des paramètres de connexion utilise le fichier service pg_service.conf (voir Section 32.17). Une ligne dans pg_service.conf commençant par ldap:// sera reconnue comme une URL LDAP et une requête LDAP sera exécutée. Le résultat doit être une liste de paires motclé = valeur qui sera utilisée pour configurer les options de connexion. L'URL doit être conforme à la RFC 1959 et être de la forme :

   ldap://[hôte[:port]]/base_recherche?attribut?étendue_recherche?filtre
   

hôte vaut par défaut localhost et port vaut par défaut 389.

Le traitement de pg_service.conf se termine après une recherche LDAP réussie, mais continue si le serveur LDAP ne peut pas être contacté. Cela fournit un moyen de préciser d'autres URL LDAP pointant vers d'autres serveurs LDAP, des paires classiques motclé = valeur ou les options de connexion par défaut. Si dans ce cas vous préférez avoir un message d'erreur, ajoutez une ligne syntaxiquement incorrecte après l'URL LDAP.

À titre d'exemple, une entrée LDAP créée à partir du fichier LDIF suivant

version:1
dn:cn=mydatabase,dc=mycompany,dc=com
changetype:add
objectclass:top
objectclass:device
cn:mydatabase
description:host=dbserver.mycompany.com
description:port=5439
description:dbname=mydb
description:user=mydb_user
description:sslmode=require
   

peut être retrouvée avec l'URL LDAP suivante :

ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
   

Dans le fichier de service, vous pouvez mélanger des entrées standards avec des recherches LDAP. Voici un exemple complet d'un bloc dans pg_service.conf :

    # seuls l'hôte et le port sont stockés dans LDAP,
    # spécifiez explicitement le nom de la base et celui de l'utilisateur
    [customerdb]
    dbname=clients
    user=utilisateurappl
    ldap://ldap.acme.com/cn=serveur,cn=hosts?pgconnectinfo?base?(objectclass=*)