我有一个存储的proc,它使用同义词从另一个SQL Server 2016数据库中提取数据。
这是EF使用的连接字符串:
<add name="ConnectionString_CSAdminEF_RO" connectionString="Data Source=myserver;initial catalog=csadmin;user=tcrpAdminTool;password=XXXX;applicationintent=readonly" providerName="System.Data.SqlClient" />
它引发此错误:
链接服务器“ MYSERVER.CORP.COMPANY.COM”的OLE DB提供程序“ SQLNCLI11”不包含表“ otherserver”。“ dbo”。“ mysynonym”“。该表不存在或当前不存在用户对该表没有权限。
当我在ADO.NET中尝试它时,会引发此错误:
过程usp_get_Data没有提供参数和参数。
这里是同义词:
CREATE SYNONYM [dbo].[mysynonym] FOR [OTHERSERVER.CORP.COMPANY.COM].[mydb].[dbo].[eDocsEntity]
仅当我添加applicationintent = readonly时问题才开始。当不涉及任何参数时,此附加参数可以正常工作。
关于导致这种情况的任何想法?我在论坛上什么都没看到]
谢谢
卡尔
从我们的DBA:
我正在主服务器上的链接服务器上工作,但没有意识到当您仅读取到辅助服务器的路由时,您必须检查辅助服务器链接服务器,而在DMS主服务器上的辅助服务器中,它们使用的服务器没有读取权限,同义词引用的数据库
我已授予它读取权限,仅此而已