我一直在研究从SQL查询SharePoint列表的方法。我能够使用OPENROWSET和Microsoft.ACE.OLEDB.12.0提供程序来完成此任务。我正在使用的代码是..
select *
from openrowset ('Microsoft.ACE.OLEDB.12.0',
'WSS;IMEX=1;RetrieveIds=Yes;DATABASE=http://siteName/subSite/;LIST=listName;',
'select top 5 id, email from list') a
https://www.connectionstrings.com/sharepoint/
当我通过SQL Server上的SSMS执行此操作时,这对我来说非常理想。但是,当我尝试从SSMS远程运行相同的代码时。这是行不通的。窗户一直在旋转。检查此查询的SPID,我发现它的等待类型仅为OLEDB。无论您坐多久,它都永远不会获取数据。我找到了一些有关在字符串中添加TRUSTED_CONNECTION = YES的文章,但没有任何区别。
我已经在sql服务器上打开了“临时分布式查询”,但我感觉好像缺少某种其他安全设置来实现此目的。因为它在本地而非远程运行脚本时有效。
任何指针都很棒!
谢谢!
尝试一下:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE WITH OVERRIDE
GO