将Active Directory用户信息与SQL一起使用

将Active Directory用户信息与SQL一起使用,sql,sql-server,active-directory,Sql,Sql Server,Active Directory,我在公司域上有一个SQL支持的项目,用户都是公司Active Directory的成员 我真的不想创建一个单独的SQL用户数据库和缓存名称、电子邮件等 当记录需要绑定到用户时,我宁愿在我的SQL表行中存储有关用户的Active Directory objectSid或objectGuid(哪一个最好?),而不是缓存Active Directory用户 这里最好的方法是什么?我已经编写了一些CLR,通过CLR存储过程,我可以生成一个LDAP查询,从ObjectSID获取特定的active dire

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

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

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

这里最好的方法是什么?我已经编写了一些CLR,通过CLR存储过程,我可以生成一个LDAP查询,从ObjectSID获取特定的active directory记录,我正在使用这些记录作为指向MsSQL数据库中active directory中记录的指针


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

最简单的方法,在我看来也是最好的方法,就是创建一个小服务,它将获取您的广告信息并在SQL server中填充/更新一个表。我们有一个每小时运行一次的服务,它使表保持最新。我们使用ADGuid来识别用户,这样对名称、adlogin、电子邮件地址等的任何更改都不会影响数据库。然后,您可以使用引用完整性来确保用户存在于AD中

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

你不想每次用户执行某个操作时都轮询广告,因为数据库效率更高,如果需要,你可以随时在应用程序中以滑动/绝对比例缓存用户信息