连接LDAP服务器用户,使用 LDAP 服务器进行连接

连接LDAP服务器用户,使用 LDAP 服务器进行连接使用LDAP服务器进行连接如果使用的是Windows(WindowsMobile除外)或Unix平台,则可以指定一个中央LDAP服务器来跟踪企业中的所有数据库服务器。如果数据库服务器在LDAP服务器中自行注册,客户端便可以查询LDAP服务器,找到其要查找的数据库服务器,无论这些服务器是在WAN、LAN上还是位于防火墙的后面。客户端不需要指定IP地址(HOST=)。…

大家好,又见面了,我是你们的朋友全栈君。

使用 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-dir\bin32)中。该文件必须采用以下格式:

[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 分钟有效期限的条目不包括在内。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/146342.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • native/ascii在线转换工具_中文转ascii

    native/ascii在线转换工具_中文转ascii1,原理Property文件中,使用的编码根据机器的设置可能是GBK或者UTF-8。而在Java中读取Property文件时使用的是Unicode编码,编码方式不同会导致中文乱码,因此需要将Property文件中的中文字符转化成Unicode编码才能正常显示中文。2,解决办法Java提供了native2ascii这种专门的工具对Property文件进行编码转换,在JDK安装环境的bin目录下可以找…

  • 中级php面试题以及答案(net高级程序员面试题)

          博主最近找工作,记录了不少面试题,有些还是挺值的学习的,这里记录一下。有些我会给出参考链接,有些需要大家自己百度了,持续补充。。一、公司一1、php的接口和抽象类有什么区别,应用场景有哪些https://blog.csdn.net/hanxueyu666/article/details/75712917 https:…

  • JAVA命令使用说明!

    JAVA命令使用说明!

  • python 元组删除某个元素_python二维数组

    python 元组删除某个元素_python二维数组我想写一些东西从数组中删除一个特定的元素。我知道我必须for遍历数组以查找与内容匹配的元素。假设我有一系列电子邮件,并且想摆脱与某些电子邮件字符串匹配的元素。我实际上想使用for循环结构,因为我还需要对其他数组使用相同的索引。这是我的代码:forindex,iteminemails:ifemails[index]==’something@something.com’:emails….

  • iterator_category

    /**迭代器类型*1.inputierator*2.writeiterator*3.forwarditerator在迭代器所形成的区间上进行读写操作*4.bidir

    2021年12月18日
  • c++计算程序运行时间_程序设计5个基本步骤

    c++计算程序运行时间_程序设计5个基本步骤注意:控制台需要加 #include “atltime.h” 头文件#include “stdafx.h” #include “atltime.h”#include <iostream>using namespace std; int _tmain(int argc, _TCHAR* argv[]){ CString strTime; //用于将CTime对象格式…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号