如果 libpq 是透過 LDAP 支援編譯的(對於 configure 使用 選項),就可以透過 LDAP 從中央伺服器檢索連線選項,例如 --with-ldaphost 或 dbname。其優點是,如果資料庫的連線引數發生變化,就不必在所有客戶端機器上更新連線資訊。
LDAP 連線引數查詢使用連線服務檔案 pg_service.conf(參見 第 32.17 節)。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。
在成功進行 LDAP 查詢後,pg_service.conf 的處理將終止,但在無法聯絡 LDAP 伺服器時會繼續處理。這是為了提供一個回退機制,可以繼續處理指向不同 LDAP 伺服器的 LDAP URL 行、傳統的 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=*)
如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步說明的內容,請使用 此表單 報告文件問題。