我创建了一个针对2个数据库“ A”和“ B”的报告。在我的报告中,我正在使用到数据库“ A”的静态数据源连接以及也使用此数据源的数据集。该数据源使用Windows身份验证。在数据库“ A”上,我已使用以下代码行将服务器“ B”链接到该服务器:exec sp_addlinkedserver @ server ='',@ srvproduct ='',@ provider ='SQLNCLI',@ datasrc =''。在“ A”上,我创建了一个工作程序,该程序成功地对SSMS中的“ A”和“ B”执行查询。
在我的报告中,我有一个@ServerName参数,它将正确的值传递给sproc。我知道它可以正常工作,因为服务器“ A”在我的报表中可以使用“预览”选项卡以及在部署时工作。但是服务器“ B”对于每个标题始终会得到相同的错误消息。我认为这与我的静态连接字符串有关,但是既然sproc可以正常工作,那么它是否仅需要与服务器“ A”的连接?
我已经竭尽全力争取了2天,并希望将这个简单的问题消除在萌芽状态,非常感谢。
问题基本上是这样的:
您连接到ServerA -但是它没有将您的凭据传递给ServerB。
查看Linked Server Security和sp_addlinkedsrvlogin。
一种方法是设置模拟,其中来自用户“ x”的任何连接(将您传递给ServerA的连接)都使用特定的用户/传递来连接到ServerB。
另一种更危险的方法(屏幕截图)是将ServerB的ANY连接设置为使用静态用户/密码...至少,这可以用作快速而肮脏的测试。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句