我创建了一个链接服务器,并希望执行一个查询链接服务器并将结果写入本地数据库的作业。我已经测试了与链接服务器的连接,一切正常。我还能够通过在新编辑器窗口中运行查询来获取结果。但是,当我运行 T-SQL 命令时,它会因登录凭据无效而失败,这是为什么?
创建链接服务器时,我选择使用当前登录上下文登录远程服务器的选项。
任何帮助,将不胜感激。
答案1
了解 SQL 服务器的版本以及是否有任何非默认配置设置(特别是为每个 SQL Server 服务设置的服务用户)仍然会很有帮助,但您的问题是因为 SQL 代理作业不会像您使用管理工作室(T-SQL)时那样在您的帐户下运行。
这可能会为你指明正确的方向:http://support.microsoft.com/kb/811031. 这也可能对你有帮助:https://stackoverflow.com/questions/667263/sql-server-2005-linked-servers-agent-jobs。
通常,您需要关注 SQL 代理作业以哪个用户身份运行。您可以将链接服务器设置为始终使用特定的 SQL 身份验证用户名/密码,但这可能不是理想的做法。此外,不同的 SQL Server 版本执行的操作也不同,因此如果您仍然遇到问题,请随时回复该信息。