![Active Directory 中自定义字段的限制](https://linux22.com/image/603586/Active%20Directory%20%E4%B8%AD%E8%87%AA%E5%AE%9A%E4%B9%89%E5%AD%97%E6%AE%B5%E7%9A%84%E9%99%90%E5%88%B6.png)
我目前正在研究在 Active Directory 中使用自定义字段在我们的域网络内存储每个用户信息的可能性/可行性,但对于自定义字段本身有一些疑问,即:
- 如果有的话,这些字段的局限性是什么?
- 字段长度是否有最大限制?
- 每个用户可用的自定义字段的最大数量是多少?
- 将他们用于此目的时,是否存在任何已知的读/写性能问题(来自 C#)?
答案1
编辑:在我知道您在谈论 Exchange 之前写了这个答案,因此它更多是关于 AD 的。
是的,有限制。你首先要考虑的是,你想要使用的属性没有被索引。这很简单,点击复选框改变。索引属性使得涉及该属性的查询更快,但代价是数据库和复制大小。
其次,您的自定义属性可能不会复制到全局目录。如果您有多个域并且可能需要从另一个域访问此信息,这可能是一个问题。这也是容易修复,但请再次注意,您正在添加复制负载。
AD 架构中已经有大量未使用的属性。也许您可以重新利用其中一些属性。例如,允许 Linux 计算机加入 AD 域的 Likewise/Powerbroker 和 Centrify 客户端...不需要 AD 架构扩展,因为这些客户端使用 AD 中预先存在的属性来存储特定于 Unix 的信息。
是的,属性有固定的大小限制,并且每个属性的限制都不同。不仅仅是大小限制,它们还可以是不同类型的数据。例如,多值字符串。每个属性还可以具有特定的允许范围、安全描述符等。这些约束是作为架构的一部分固定的。 以下是参考Active Directory 属性...信息有点旧,但想法是一样的。您有链接属性、ANR(模糊名称解析)属性等,它们的行为略有不同,用途也不同。
最后一条建议 - 考虑对 AD 架构所做的任何更改永久且不可逆转。因此,只有在深思熟虑和计划之后才可以这样做。
答案2
将他们用于此目的时,是否存在任何已知的读/写性能问题(来自 C#)?
多值属性比使用单值属性并使用分隔符分隔多条信息具有更好的查询性能。就像 SQL Server 一样,如果查询通配符以 * 为前缀,则性能会很差。当您查询非通配符值或通配符后缀值时,如果该值与多值属性中的一个值匹配,则查询会成功。有些人没有意识到这一优势。
属性也可以被索引,您应该考虑这样做。
如果您有多个域,并且需要具有该属性的对象以外的其他域中可用的信息,则可能需要将该属性添加到全局目录(有时称为部分属性集或过滤属性集)。