0

我在公司域上有一个 SQL 支持的项目,用户都是公司 Active Directory 的成员。

我真的不想创建单独的 SQL 用户数据库和缓存名称、电子邮件等。

当需要将记录绑定到用户而不是缓存 Active Directory 用户时,我宁愿将相关用户的 Active Directory objectSid 或 objectGuid(哪个最好?)存储在我的 SQL 表行中。

这里最好的方法是什么?我已经编写了一些 CLR 并使用 CLR 存储过程,我可以生成一个 LDAP 查询以从 ObjectSids 获取特定的活动目录记录,我将其用作从我的 MsSQL 数据库指向 Active Directory 中的记录的指针。

这真的是这里最好的方法吗?这很痛苦,虽然足以满足我的需求,但我认为必须有一种不那么繁琐的方法。

4

1 回答 1

1

最简单的方法,我认为最好的方法是创建一个小型服务,该服务将获取您的 AD 信息并填充/更新 SQL Server 中的表。我们有一个大约每小时运行一次的服务,它使表格保持最新状态。我们使用 ADGuid 来识别用户,这样对名称、登录名、电子邮件地址等的任何更改都不会影响数据库。然后,您可以使用参照完整性来确保用户存在于 AD 中。

我们的应用程序使用 ADFS 登录用户,因此我们始终拥有识别用户的 guid,并且可以从表中获取所需的任何额外信息。

您不想在每次用户执行操作时轮询 AD,数据库效率更高,如果需要,您始终可以在应用程序中以滑动/绝对比例缓存用户信息。

于 2013-10-02T08:02:09.920 回答