实现LDAP类型的数据库

时间:2013-01-29 21:30:36

标签: database tree ldap

我很想知道用什么类型的物理结构来存储像Active Directory这样的LDAP数据库。

数据库表示为树结构,其中每个节点都有一组属性和可选子节点。节点具有类类型,该类类型定义应用哪组属性。我认为在这方面它类似于XML文档。

属性数量为数百,如果不是数千。这些属性也不一定是固定大小的,例如MultiSz类型;而且至关重要的是,属性和类是可扩展的。

我还注意到数据库是关系型的,例如在memberOf属性和组之间保持双向参照完整性。

显然你不能将它存储在RDBMS中 - 行长度限制(并且需要运行ALTER TABLE)意味着属性系统不适合,但是如何在磁盘上构建像这样的数据库?

1 个答案:

答案 0 :(得分:1)

LDAP是一种协议,没有规定数据的存储方式。

数据库应该有分层方法。 LDAP还需要能够执行诸如value,substring和presence之类的索引。

条目,包含包含值的属性。

LDAP提供的参照完整性没有。 某些LDAP服务器实现可能为memberOf和member提供值,通常是LDAP服务器实现(例如AD)的后台服务,它创建memberOf的伪值。 (它实际上并不在底层数据库中。)

是的,您可以将数据存储在关系数据库中。属性值可以作为条目上属性名称的关键关系来完成。

至于具体的AD,this may provide a place to start