我有一个存储过程,它使用同义词从另一个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”、“mysynoym”。该表不存在,或者当前用户对该表没有权限。
在ado.net中尝试时,会抛出以下错误:
过程usp\u get\u data没有参数,并且提供了参数。
同义词如下:
CREATE SYNONYM [dbo].[mysynonym] FOR [OTHERSERVER.CORP.COMPANY.COM].[mydb].[dbo].[eDocsEntity]
当我添加applicationcontent=readonly时,问题才开始出现。当不涉及任何参数时,此附加参数可以正常工作。
你知道是什么引起的吗?我在论坛上什么都没看到
谢谢
卡尔
1条答案
按热度按时间yrwegjxp1#
我们的dba:
我在主服务器上处理链接服务器时没有意识到,当您以只读方式路由到辅助服务器时,您必须检查链接服务器的辅助服务器,而在作为dms主服务器的辅助服务器中,它们使用的服务器对同义词引用的数据库没有读取权限
我给了它读取权限,就这样