我有一个命令行程序(我编写的),可以在 Windows Server 2012 上运行。它连接到另一台服务器上的 MS SQL 数据库服务器,该服务器具有与 Access 数据库的链接服务器。当我从命令提示符运行此程序时,它工作正常。
但是,当使用计划任务运行该程序时,我收到错误“链接服务器“BackOffice”的 OLE DB 提供程序“Microsoft.ACE.OLEDB.12.0”报告错误。身份验证失败。”
计划任务设置为在我的登录名下运行,与我在命令提示符下运行程序的登录名相同,我尝试关闭和打开“以最高权限运行”,但都不起作用。
答案1
抱歉,我犯了一个错误,后来我意识到问题是因为连接字符串使用了 SQL 服务器用户名和密码,我需要将其更改为集成安全性,因此它使用 Windows 登录。
现在一切都好了。
答案2
在这种情况下,他可以通过改变 CredSSP 委派来解决问题,如下所示:
在任务服务器上:Enable-WSManCredSSP Client –DelegateComputer <schedTaskHost>
在 SQL Server 上:Enable-WSManCredSSP Server
如果这没有帮助:请咨询SQL Server 事件探查器Show all events
通过设置、扩展Errors and Warnings
和启用来查找错误,User Error Message
让它运行并再次尝试连接。阅读红色条目。