我有一个本地SQL Server 2012,并且供应商为我们提供了一个只读SQL用户的远程SQL Server 2012安装程序。除提供此只读登录之外,供应商将不执行任何操作。我可以整天登录和查询远程凭据。但是,当连接到我的实例时,我无法查询供应商实例。我需要从我的服务器查询和运行作业,但不能。
以下是关于我能做什么和不能做什么的一些信息:
使用凭据登录并运行查询:
我使用我的本地登录和上面的远程用户创建了一个链接服务器,该用户将通过连接测试。
从我的服务器,我可以查询远程系统表,但不能查询远程用户表:
从[Some.I.P.Address \ SomeName]中选择前1 * .DateBaseName.ReadOnlyUser。[TableName]
SELECT top 1 * FROM [Some.I.P.Address \ SomeName] .master.sys.Servers
为什么我可以直接连接到远程实例并运行查询,但是当我连接到我的服务器时,我只能查询系统表?
它给了我这个错误,但是A)表确实存在,并且B)用户确实拥有权限,因为我可以直接连接通过链接服务器连接测试的相同凭据并在该表上运行查询:
Msg 7314, Level 16, State 1, Line 1
The OLE DB provider "SQLNCLI11" for linked server "[Some.I.P.Address\SomeName]" does not contain the table ""DateBaseName"."ReadOnlyUser"."TableName"". The table either does not exist or the current user does not have permissions on that table.