如果libpq已经在编译时打开了 LDAP 支持(configure
的选项
),就可以通过 LDAP 从一个中央服务器检索--with-ldap
host
或dbname
之类的连接参数。这样做的好处是如果一个数据库的连接参数改变,不需要在所有的客户端机器上更新连接信息。
LDAP 连接参数查找使用连接服务文件pg_service.conf
(见第 33.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。
一次成功的 LDAP 查找后,pg_service.conf
的处理被终止。但是如果联系不上 LDAP 则会继续处理pg_service.conf
。这就提供了后手,可以加入更多指向不同 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
中一节的完整例子:
# 只有主机和端口存储在LDAP中,显式指定dbname和user。
[customerdb]
dbname=customer
user=appuser
ldap://ldap.acme.com/cn=dbserver,cn=hosts?pgconnectinfo?base?(objectclass=*)
34.3.1. 创建一个大对象34.3.2. 导入一个大对象34.3.3. 导出一个大对象34.3.4. 打开一个现有的大对象34.3.5. 向一个大对象写入数...
35.13.1. 主变量的可见范围35.13.2. 使用外部 C 模块的 C++ 应用开发ECPG 对于 C++ 应用提供了有限的支持。这一节描述了一些忠告...
EXECUTE IMMEDIATE — 动态地准备和执行一个语句大纲EXECUTE IMMEDIATE string描述 EXECUTE IMMEDIATE立刻预备并且执行一个动态...
Input Button name 属性 Button 对象定义和用法name 属性可设置或者返回 button 元素的 name 属性值。name 属性用于表单提交后向...
Form acceptCharset 属性 Form 对象定义和用法acceptCharset 属性可设置或返回一个逗号分隔的列表,内容是服务器可接受的字符集...
Form action 属性 Form 对象定义和用法action 属性可设置或返回表单的 action 属性。action 属性定义了当表单被提交时数据被送往...
Progress max 属性 Progress 对象实例修改进度条的最大值:document.getElementById("myProgress").max="50";定义和用法max 属性...
Style alignSelf 属性 Style 对象实例居中对齐灵活元素内的某个项目:document.getElementById("myDIV").style.alignSelf="cente...