1

我正在尝试使用链接服务器连接 2 个数据库(不在同一服务器或域上)。下面是我正在运行以连接 2 的查询。

我的问题是,如果我指定@rmtuser = 'sa',我就可以正常连接。但是,如果我将 @rmtuser 切换为“RemoteIntegrationUser”,我会收到一条错误消息,提示无法连接。(错误 18456)

我已经验证我可以使用“RemoteIntegrationUser”帐户通过 SSMS 直接连接到“远程”服务器,并且连接得很好。

为了能够处理这些传入连接,“远程”服务器上是否必须有一些特殊权限“远程集成用户”?

Exec sp_dropserver 'RemoteDB', 'droplogins'
go


EXEC master.dbo.sp_addlinkedserver 
@server = N'RemoteDB'
   ,@srvproduct = 'OLE DB Provider for SQL'
   ,@provider = N'SQLNCLI'
   ,@datasrc = '111.2222.33.44'
   ,@catalog = 'myremotedb'

EXEC master.dbo.sp_addlinkedsrvlogin 
@rmtsrvname = N'RemoteDB'
   ,@useself = false
   ,@locallogin = 'LocalIntegrationUser'
   ,@rmtuser = N'RemoteIntegrationUser'
   ,@rmtpassword = N'************'
go
4

2 回答 2

1

由于您要链接 2 个 SQL Server,请尝试将 @srvproduct 定义为N'SQL Server'. 我不确定位于不同域上的实例是否允许这样做。您可能还想@locallogin = NULL在定义链接服务器登录时尝试设置:

EXEC master.dbo.sp_addlinkedserver
     @server = N'<server name/ip>'
    ,@srvproduct=N'SQL Server'

EXEC master.dbo.sp_addlinkedsrvlogin 
     @rmtsrvname = N'<server name or ip>'
    ,@locallogin = NULL
    ,@useself = N'False'
    ,@rmtuser = N'RemoteIntegrationUser'
    ,@rmtpassword = N'************'
GO

除此之外,RemoteIntegrationUser 是否具有连接到 myremotedb 数据库的权限?

于 2013-02-14T23:27:49.467 回答
1

打脸

谈一谈只见树木不见森林。不知何故,我最终使用了错误的密码。发誓我使用的是正确的,但不是。再次证明,人机关系中最薄弱的环节不是计算机。

于 2013-02-15T18:04:29.790 回答