LDAP目录以树状的层次结构来组织和存储数据,目录由目录入口对象(Entry)组成,目录入口对象(Entry)至关于关系数据库中表的记录,可直接成为LDAP目录记录,是具备区别名DN(Distinguished Name)的属性(Attribute)集合,DN至关于关系数据库表中的关键字(Primary Key);属性由属性类型(Type)和多个值(Values)组成,至关于关系数据库中的域(Field)由域名和数据类型组成,只是为了方便检索和灵活性的须要,LDAP中的Type能够有多个Value,而不是关系数据库中为下降数据的冗余性要求实现的各个域必须是不相关的。数据库
目录服务与数据库服务的不一样之处在于, LDAP目录服务通常缺乏数据库提供的事务功能和大规模数据的数据库支持;但专门针对读密集型的操做进行了专门的优化,所以,可极大地提升数据读取和查询性能;LDAP把数据存放在文件中,为提升效率可使用基于索引的文件数据库,而不是关系数据库;LDAP的数据类型主要是字符型,为了检索的须要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax),而不是关系数据库提供的整数、浮点数、日期、货币等类型,一样也不提供象关系数据库中广泛包含的大量的函数,它主要面向数据的查询服务(查询和修改操做比通常是大于10:1),不提供事务的回滚(rollback)机制,它的数据修改使用简单的锁定机制实现All-or-Nothing,它的目标是快速响应和大容量查询而且提供多目录服务器的信息复制功能;通常而言,当从LDAP服务器中读取数据的时候会比从专门为OLTP优化的关系型数据库中读取数据快一个数量级。服务器
基准DN:
LDAP目录树的最顶部就是根,也就是所谓的“基准DN”。基准DN一般使用下面的格式,如:o=orgname.com.cn (用组织机构的域名/Internet地址做为基准DN,这种格式很直观,这也是如今最经常使用的格式)。函数
完整的DN,好比,为一个员工“张三”设置一个DN:
cn=zhang san, ou=employees, o=orgname.com.cn(基于姓名)
uid=szhang, ou=employees, o=orgname.com.cn(基于登陆名,推荐)性能
推荐采用基于登陆名的方式设置DN,由于基于姓名这种格式有一个很明显的缺点---若是名字改变了,LDAP的记录就要从一个DN转移到另外一个DN,可是,咱们应该尽量地避免改变一个记录项的DN;而大多数单位都会给每个员工惟一的登陆名,所以用这个办法能够很好地保存员工的信息,而不用担忧之后还会有一个叫“张三”的加入,或者“张三”改变了名字,也用不着改变LDAP记录项的DN。优化
*********************************************ui
OpenLDAP下载地址:http://download.bergmans.us/openldap/openldap-2.2.29/openldap-2.2.29-db-4.3.29-openssl-0.9.8a-win32_Setup.exe 下载后点击安装便可。对象
下面新建一个ldif文件test.ldif索引
dn:o=example,dc=cn
objectClass:dcObject
objectClass:organization
o:tt
dc:com事务
dn:uid=sa,o=example,dc=cn
uid:sa
objectClass:inetOrgPerson
mail:abc@sian.com
userPassword:secret
labeledURI:http://www..com
sn:zhangs
cn:zhangsanssl
鉴于基于LDAP目录服务存储和管理用户的身份认证等信息,可更有效更灵活地管理用户及资源,咱们推荐采用LDAP目录服务做为各组织机构信息化建设统一用户管理的基础平台。