SQL Server 2012中的Active Directory查询触发失败

时间:2014-03-05 20:09:40

标签: sql sql-server triggers active-directory adsi

我有一个对Active Directory的OpenQuery调用,它获取给定Windows域帐户名的电子邮件地址。它工作正常,直到我把它放在插入触发器。违规的T-SQL是:

set @sql = 'select mail from openquery(ADSI, '''
    + 'SELECT mail FROM ''''LDAP://DC=COMPANY,DC=LOCAL''''
    WHERE objectClass=''''user'''' AND objectClass<>''''computer'''' 
    AND samAccountName=''''username'''''') '
exec sp_executesql  @sql, N'@recipients varchar(500) output', @recipients output

ADSI是链接服务器,我将安全上下文设置为始终使用特定用户帐户。添加新记录时,我的Web应用程序中返回了以下错误。

  

“元数据集合中不存在具有标识'mail'的成员。   参数名称:identity“

我尝试使用我的应用程序用于连接数据库并从SQL Management Studio运行查询的同一用户进行连接,但我无法在Trigger之外复制问题。有人能指出我正确的方向吗?我怀疑这是一个安全问题,但我迷失了,并且没有想法。

0 个答案:

没有答案