libpqがLDAPサポート(configure時のオプション)付きでコンパイルされている場合、中央サーバからLDAPを通して--with-ldaphostやdbnameなどの接続オプションを取り出すことができます。
この利点は、データベースの接続パラメータが変わった場合に、すべてのクライアントマシンで接続情報を更新しなくても済む点です。
LDAP接続パラメータ検索は、pg_service.confという接続サービスファイル(34.16を参照)を使用します。
pg_service.conf内のldap://から始まる行は、LDAP URLとして認識され、LDAP問い合わせが実行されることを示します。
その結果は、keyword = valueという組み合わせのリストでなければなりません。
これらが接続用オプションの設定に使用されます。
このURLはRFC 1959に従ったもので、以下のような形式でなければなりません。
ldap://[hostname[:port]]/search_base?attribute?search_scope?filter
ここで、hostnameのデフォルトはlocalhost、portのデフォルトは389です。
pg_service.confの処理はLDAP検索が成功した時に終わります。
しかし、もしLDAPサーバへのアクセスができなかった場合は継続します。
これはアクセスに失敗した時に、異なるLDAPサーバを指し示す他のLDAP行や以前からのkeyword = valueの組み合わせ、デフォルトの接続オプションを参照する予備機能を提供します。
この場合にエラーメッセージを受け取りたい場合は、LDAP URL行の後に文法的に不正な行を記載してください。
LDIFファイルとして作成されたLDAP項目の例を以下に示します。
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
これは、以下のようなLDAP URLから得られます。
ldap://ldap.mycompany.com/dc=mycompany,dc=com?description?one?(cn=mydatabase)
また、LDAP検索と通常のサービスファイル項目とを混在させることもできます。
pg_service.confの一節について完全な例を以下に示します。
# only host and port are stored in LDAP, specify dbname and user explicitly [customerdb] dbname=customer user=appuser ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)