PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 31. libpq - C 库 | 下一页

# 31.17. LDAP查找连接参数

如果libpq已经通过LDAP支持（`configure` 的``--with-ldap``）进行了编译，可以从一个中央服务器， 通过LDAP检索连接选项，如`host`或`dbname`。 这样做的好处是，如果一个数据库连接参数发生了改变，在所有客户端的连接信息不必进行改变。

LDAP连接参数查找使用连接服务文件`pg_service.conf`(参阅 第 31.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 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=*)

上一页 | 起始页 | 下一页
连接服务的文件 | 上一级 | SSL 支持