【问题标题】:Return Active Directory jpegPhoto attribute in LDAP SQL query from SSMS in SQL Server从 SQL Server 中的 SSMS 返回 LDAP SQL 查询中的 Active Directory jpegPhoto 属性
【发布时间】:2014-08-28 15:49:02
【问题描述】:

我在这个问题上遇到了难题,我似乎无法找到或解决问题所在或找到问题的答案......我对查询 Active Directory 完全陌生,所以我我希望当我指出解决方案时,我没有做任何值得拍脑门的事情!

因此,我已将图像上传到 thumbnailPhoto 和 jpegPhoto 中,并且我可以在 ADSI Edit 中看到它们确实具有价值。

我已经在我们的 2008 R2 数据库服务器上设置了一个链接服务器(名为 ActiveDirectory),我可以成功地查询它并返回结果。如果我运行下面的查询,它会返回正确的值,但是一旦我取消注释 jpegPhoto 行(在下面的代码中注释掉),我就会收到错误...

无法从链接服务器“ActiveDirectory”的 OLE DB 提供程序“ADSDSOObject”获取行的数据。由于符号不匹配或溢出以外的原因,无法转换数据值。

如果 jpegPhoto 的内容从未填充到返回的结果集中,则查询会正确运行且未注释 jpegPhoto。

SELECT
   objectGUID
   ,cn
   ,thumbnailPhoto
   --   ,jpegPhoto
FROM OpenQuery ( 
   ActiveDirectory,  
   'SELECT
      objectGUID
      ,cn
      ,thumbnailPhoto
      ,jpegPhoto
 FROM  ''LDAP://XXXXX/OU=XXXXX,DC=XXXXX,DC=XXXXX,DC=com''
 ') AS AD
WHERE cn = 'username'

结果可以从 OpenQuery 返回,这对我来说似乎很奇怪(我尝试过 OpenRowset 无济于事),它似乎在这之外失败了。

我也尝试过各种 CAST 和 CONVERT,但我现在不知道如何才能在查询中实际返回该字段的内容(我只是尝试在 SQL Server 管理中运行)工作室。

有人遇到过这个问题并解决了吗?

我当然希望如此!

提前致谢!!

甘农

【问题讨论】:

  • 你有没有想过这个问题?我遇到了同样的问题。

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


【解决方案1】:

我知道的老问题,但对于那些在谷歌上找到这个的人。

据我所知,对于 thumbnailPhoto,用于 Microsoft 目录服务的 OLE DB 提供程序仅限于 4k 字段大小。这意味着,如果您上传一张很小的照片,它就可以工作。

对于jpegPhoto,字段类型有区别-

thumbnailPhoto 是单值的,上限为 102400 字节。

另一方面,jpegPhoto 是多值的,不强制使用上限

而且,根据互联网上的其他页面 -

SQL Server 的 ADSI 提供程序相当有限 - 不支持多值属性是这些限制之一。

【讨论】:

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