我有一个存储用户信息的Active Directory(LDAP) . 我正在尝试使用TSQL访问它,但我遇到了身份验证问题 .
LDAP看起来像这样(我编辑了数据):
用户具有以下属性:
现在,我试图通过使用OPENROWSET的SQL Server中的TSQL查询来获取此用户的信息,如下所示:
SELECT *
FROM
OPENROWSET('ADSDSOObject','adsdatasource'; 'domain.com.io\test';'the_sha1_pass',
'SELECT givenname
FROM ''LDAP://domain.com.io/ou=Users,
dc=domain,dc=com,dc=io'' WHERE givenname = ''Test''
')
但是当我执行它时,我收到以下错误:
服务器:消息7399,级别16,状态1,行1 OLE DB提供程序“ADSDSOObject”报告错误 . 提供者指示用户没有执行操作的权限 .
现在,我不知道是否必须发送我正在尝试查询的用户的身份验证,或者我用来连接LDAPAdmin的凭据 . 如果我必须发送它,我应该发送已经加密或没有加密的通行证吗?
谢谢 .
1 回答
您可以通过删除用户名和密码来更改您的OPENROWSET查询,如下所示
或者作为替代方案,您可以尝试以下查询结构
我在OpenQuery命令中使用givenname参数在WHERE子句中添加了用户objectCategory
在运行Select语句之前,您可以add LDAP as linked server in SQL Server,如参考教程中所示