如果 libpq 在编译时启用了 LDAP 支持 (使用
配置 --with-ldap
configure
),则可以通过 LDAP 从中央服务器检索连接选项,例如 host
或 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=*)
如果您在文档中发现任何不正确、与您的特定功能体验不符或需要进一步说明的内容,请使用此表单来报告文档问题。