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

时间:2013-10-09 16:44:29

标签: sql-server active-directory synchronization ldap active-directory-group

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

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

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

2 个答案:

答案 0 :(得分:1)

我不熟悉SQL Server,所以我不知道它是否具有与AD同步的特殊功能。

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

我最近开源ADSync4J,这是一个小型Java库,可以帮助您实现该文章中提到的第三种技术(Polling for Changes Using USNChanged)。但是,如果您的目标平台不是JVM,那将无济于事。

答案 1 :(得分:0)

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

似乎有一种方法可以直接使用SQL进行查询(尽管有一些注意事项,即最大结果集大小并且不支持多值参数)。很多文章都存在于谷歌搜索等快速搜索中; https://www.mssqltips.com/sqlservertip/2580/querying-active-directory-data-from-sql-server/