大家好,又见面了,我是你们的朋友全栈君。
使用 LDAP 服务器进行连接
如果使用的是 Windows(Windows Mobile 除外)或 Unix 平台,则可以指定一个中央 LDAP 服务器来跟踪企业中的所有数据库服务器。如果数据库服务器在 LDAP 服务器中自行注册,客户端便可以查询 LDAP 服务器,找到其要查找的数据库服务器,无论这些服务器是在
WAN、LAN 上还是位于防火墙的后面。客户端不需要指定 IP 地址 (HOST=)。服务器枚举实用程序 (dblocate) 也可以使用 LDAP 服务器来查找其它同类服务器。
LDAP 仅与 TCP/IP 一起使用,且仅在网络数据库服务器上使用。
在 AIX 上配合使用 SQL Anywhere 与 LDAP 服务器
要配合使用 SQL Anywhere 11 与 AIX 6,必须在 /usr/lib 中创建链接,或者确保具有 LDAP 库的目录包括在 LIBPATH 中,以确保能够找到 LDAP 系统库。
♦ 在 /usr/lib 中创建链接
以 root 用户身份运行以下命令:
cd /usr/lib
ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a
ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a
♦ 将包含 LDAP 库的目录添加到 LIBPATH
以 root 用户身份运行以下命令,在 /usr/lib 下创建链接:
cd /usr/lib
ln -s /opt/IBM/ldap/V6.1/lib64/libibmldap.a libibmldap64.a
ln -s /opt/IBM/ldap/V6.1/lib/libibmldap.a
确保具有 LDAP 库的目录位于 LIBPATH 中。
例如,对于 64 位库:
export LIBPATH=/opt/IBM/ldap/V6.1/lib64:$LIBPATH
例如,对于 32 位库:
export LIBPATH=/opt/IBM/ldap/V6.1/lib:$LIBPATH
配置 saldap.ini 文件
要启用此功能,必须在数据库服务器计算机和每台客户端计算机上都创建一个文件,其中包含有关如何查找和连接到 LDAP 服务器的信息。此文件的缺省名称是 saldap.ini,但可以对其进行配置。如果此文件不存在,将以静默方式禁用 LDAP 支持。
如果未使用 LDAP 参数指定完整路径,则该文件必须位于放置 SQL Anywhere 可执行文件的目录(例如,如果使用的是 Windows,则是 install-dirbin32)中。该文件必须采用以下格式:
[LDAP]
server=computer-running-LDAP-server
port=port-number-of-LDAP-server
basedn=Base-DN
authdn=Authentication-DN
password=password-for-authdn
search_timeout=age-of-timestamps-to-be-ignored
update_timeout=frequency-of-timestamp-updates
read_authdn=read-only-authentication-domain-name
read_password=password-for-authdn
可以使用文件隐藏实用程序 (dbfhide) 来进行简单加密,以对 saldap.ini 文件的内容进行模糊处理。请参见文件隐藏实用程序 (dbfhide)。
如果该文件的名称不是 ldap.ini,则必须使用 LDAP 参数指定文件名。
server 运行 LDAP 服务器的计算机的名称或 IP 地址。在 Unix 上,此值是必需的。在 Windows 上,如果缺少此条目,Windows 会查找在本地域控制器上运行的 LDAP 服务器。
port LDAP 服务器使用的端口号。缺省值为 389。
basedn 存储 SQL Anywhere 条目的子树的域名。此值缺省为树的根。
authdn 验证域名。该域名必须是 LDAP 目录中对 basedn 拥有写权限的一个现有用户对象。对于数据库服务器,此参数是必需的,但在客户端上将被忽略。
password authdn 的口令。对于数据库服务器,此参数是必需的,但在客户端上将被忽略。
search_timeout 时间戳的有效期限,到期时客户端和/或服务器枚举实用程序 (dblocate) 将忽略时间戳。值 0 将禁用此选项,此时将假定所有条目都处于最新状态。缺省值为 600 秒(10 分钟)。
update_timeout LDAP 目录中更新时间戳的周期。值为 0 时将禁用此选项,这样数据库服务器就永远不会更新时间戳。缺省值为 120 秒(2 分钟)。
read_authdn 只读验证域名。该域名必须是 LDAP 目录中对 basedn 拥有读权限的一个现有用户对象。只有在 LDAP 服务器要求进行非匿名绑定才能执行搜索时,此参数才是必需的。例如,如果将 Active Directory 用作 LDAP 服务器,则此字段通常是必填字段。如果缺少此参数,绑定将是匿名的。
read_password authdn 的口令。仅当指定了 read_authdn 参数时,此参数在客户端上才是必需的。
示例
以下是一个示例 saldap.ini 文件:
[LDAP]
server=ldapserver
basedn=dc=iAnywhere,dc=com
authdn=cn=SAServer,ou=iAnywhereASA,dc=iAnywhere,dc=com
password=secret
条目存储在名为 iAnywhereASA 的 basedn 的一个子树中。必须先创建此条目,SQL Anywhere 才能使用 LDAP。若要创建子树,可以使用 LDAPADD 实用程序,提供以下信息:
dn: ou=iAnywhereASA,basedn
objectClass: organizationalUnit
objectClass: top
ou: iAnywhereASA
服务器启动时会检查 LDAP 文件中是否已经存在同名条目。如果找到同名条目且满足以下条件之一,则会替换该同名条目:LDAP 中的位置条目与尝试启动的数据库服务器相符;LDAP 条目中的时间戳字段已超过 10 分钟的有效期限(该超时值是可配置的)。
如果这两个条目都不满足,则表明与尝试启动的数据库服务器同名的另一个数据库服务器正在运行,启动将会失败。
为确保 LDAP 中的条目是最新的,数据库服务器会每 2 分钟更新一次 LDAP 条目中的时间戳字段。如果一个条目的时间戳超过 10 分钟,客户端将忽略该 LDAP 条目。这两项设置都是可配置的。
在客户端上,将会先搜索 LDAP 目录,再进行任何广播,这样一来,如果找到了数据库服务器,就不会发送广播。LDAP 搜索的速度很快,因此失败时不会造成明显的延迟。
服务器枚举实用程序 (dblocate) 也使用 LDAP—LDAP 中列出的所有数据库服务器都将添加到返回的数据库服务器列表中。这使服务器枚举实用程序 (dblocate) 可以列出通常不会返回的数据库服务器,例如,那些广播无法到达的服务器。时间戳超过
10 分钟有效期限的条目不包括在内。
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/146342.html原文链接:https://javaforall.cn