1

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

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

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

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

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

4

1 回答 1

1

LDAP 是一种协议,没有关于如何存储数据的规范。

一个数据库,应该有分层的方法。LDAP 还需要能够做索引,例如值、子字符串和存在。

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

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

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

至于广告,具体来说,这可能会提供一个起点

于 2013-01-30T10:41:01.290 回答