选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
测试与开发版本: 19 / devel
不受支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0
历史版本PostgreSQL 9.1 已于 2016 年 10 月结束社区维护,本页译文保留供仍在使用旧版本的读者参考。新系统请看当前版本

31.16. 连接参数的 LDAP 查找 #

如果libpq已经在编译时打开了 LDAP 支持(configure的选项--with-ldap),就可以通过 LDAP 从一个中央服务器检索hostdbname之类的连接参数。这样做的好处是如果一个数据库的连接参数改变,不需要在所有的客户端机器上更新连接信息。

LDAP 连接参数查询使用连接服务文件pg_service.conf(参见第 31.15 节)。在pg_service.conf的配置段中,以ldap://开头的行会被识别为 LDAP URL,并执行 LDAP 查询。结果必须是一个keyword = value键值对列表,用于设置连接选项。URL 必须符合 RFC 1959,格式如下:

ldap://[hostname[:port]]/search_base?attribute?search_scope?filter

其中,hostname默认为localhostport默认为 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:groupOfUniqueNames
cn:mydatabase
uniqueMember:host=dbserver.mycompany.com
uniqueMember:port=5439
uniqueMember:dbname=mydb
uniqueMember:user=mydb_user
uniqueMember:sslmode=require

可以通过以下 LDAP URL 查询:

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

你也可以将常规的服务文件条目和 LDAP 查找混合。pg_service.conf中一节的完整示例:

# 仅 host 和 port 存储在 LDAP 中;显式指定 dbname 和 user
[customerdb]
dbname=customer
user=appuser
ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)

提交更正

译文有误、术语不当或页面显示问题,请到译文仓库 pgsty/pgdoc 报告译文问题。 英文原文本身的问题,请在当前版本的对应页面向上游反馈;上游不再修订已结束维护的版本。