将 SQL Server 数据库与 Active Directory 实时同步



我正在编写一个应用程序来管理 AD 权限组。但是,某些需要的字段(如"主要所有者"、"次要所有者"、"审核日期"和历史日志(不在 AD 中。我计划有一个单独的 SQL Server 数据库来保存此数据,并使用组的系统 ID 来联接数据。

我的问题是:在 AD 发生更改时,是否可以将 SQL Server 数据库与 AD 中的内容同步?也许存在一些聆听工具?LDAP可以用来解决这个问题吗?

如果数据库每晚更新,可能会出现一个问题是,如果在 AD 中创建了一个新组,则需要为其分配主要和次要所有者,但是新组的 SID 不会立即出现在 SQL Server 数据库中。

我不

熟悉SQL Server,所以我无法判断它是否具有与AD同步的特殊功能。

我所知道的是,如果您想使用 LDAP 跟踪 AD 中的更改,有几种不同的解决方案。您可以在这篇 MSDN 文章中找到可用技术的概述。

我最近开源了ADSync4J,这是一个小型Java库,可以帮助您实现该文章中提到的第三种技术(使用USNChanged轮询更改(。但是,如果您的目标平台不是 JVM,则不会有太大帮助。

我们使用用 C# 编写的控制台应用程序,该应用程序在批处理上运行,以读取 AD 信息并将其插入 SQL 表中。这几乎可以用任何带有 LDAP 绑定的语言完成,但根据 AD 目录的大小,可能会提高性能。

似乎确实有一种方法可以直接使用 SQL 进行查询(尽管有一些警告,即最大结果集大小和不支持多值参数(。许多文章都来自快速的谷歌搜索,例如;https://www.mssqltips.com/sqlservertip/2580/querying-active-directory-data-from-sql-server/

最新更新