我正在使用OPENROWSET
OleDB提供程序从Active Directory查询信息。
以非SysAdmin帐户运行时,出现以下错误。
对OLE DB提供程序'ADSDSOObject'的临时访问已被拒绝。您必须通过链接服务器访问此提供程序。
我使用的ADsDSOObject
不需要如下所示的链接服务器设置...
OPENROWSET
我缺少允许这样做的什么权利?
答案 0 :(得分:2)
这实际上是SQL Server的一个小错误,而不是权限问题。为此,您必须为ADsDSOObject链接服务器提供程序禁用“禁止临时访问”参数,但这很棘手。
启动SSMS并转到链接服务器提供程序。展开ADsDSOObject提供程序的属性。
下一步是反直观。选中“禁止临时访问”旁边的框,然后单击“确定”。您实际上想将其设置为false,但这有一个窍门。
这将在您的注册表中创建适当的条目。它以前不存在。启动RegEdit,然后找到与您刚刚选中的复选框一致的注册表项。它将位于不同的位置,具体取决于您所使用的SQL Server版本。我的位置在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Microsoft SQL Server \ MSSQL14.MSSQLSERVER \ Providers \ ADSDSOObject中,但您的位置可能会略有不同。
这时,您要将1更改为0。您还需要重新启动SQL Server服务。完成后,您应该可以为该1个特定提供程序使用OPENROWSET。