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目錄服務做爲各組織機構信息化建設統一用戶管理的基礎平臺。