【问题标题】:LDAP connection to AD using OPENQUERY SQL Server 2008 R2使用 OPENQUERY SQL Server 2008 R2 到 AD 的 LDAP 连接
【发布时间】:2017-12-14 18:46:08
【问题描述】:

我有一个使用 ldap 连接检索 AD 相关信息的查询(如下)。但是,问题是此查询提供了所有员工。我只寻找现有员工。有人告诉我使用以下信息来拉动“仅限活跃”员工:

OU=CompanyName Users,DC=CompanyName,DC=local

我尝试修改下面的select语句来添加OU相关信息,但查询一直失败。有人知道如何将上面的字符串转换为正确的 ldap 位置吗?

SELECT  
*
FROM OPENQUERY( ADLink, 
'
SELECT 
   employeeNumber,
   name
FROM ''LDAP://ldap.CompanyName.local/DC=CompanyName;DC=local''
WHERE objectClass = ''user'' 
  AND objectCategory = ''Person''   
ORDER BY title asc
') A

【问题讨论】:

标签: sql-server active-directory sql-server-2008-r2 ldap


【解决方案1】:

有一个accountExpires 属性,您可能可以对其进行过滤。

where accountExpires > 0

只需将accountExpires 添加到您的选择列表中,然后再将其添加到 where 子句以查看返回的值。它应该与您的服务器格式相同。

【讨论】:

  • 可能是我们没有正确使用 accountExpires 属性。当我过滤大于 0 时,它会从列表中删除大量活跃员工。还有其他建议吗?
  • 好吧,您可以在未来的帐户上设置一个到期日期,以便查看返回的值并将其转换为日期,以便您知道。或者只是询问您的 ldap / 安全团队。
  • 另外,在编写 ldap url 时,如何在 OU(“CompanyName Users”)中转义空间:LDAP://ldap.CompanyName.local/OU=CompanyName Users;DC=CompanyName;DC=本地
【解决方案2】:

我认为这是不正确的 FROM ''LDAP://ldap.CompanyName.local/DC=CompanyName;DC=local''

尝试: FROM ''LDAP://OU="组织单位", DC="CompanyName",DC=com''

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多