2013-02-14 84 views
1

我试图使用链接服务器连接2个数据库(不在同一台服务器或域上)。下面是我正在运行的连接2.链接服务器远程登录权限

我的问题是,如果我指定@rmtuser ='sa',我能够连接就好。但是,如果将@rmtuser切换为“RemoteIntegrationUser”,则会显示错误,指出无法连接。 (错误18456)

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

为了能够处理这些传入的连接,“RemoteIntegrationUser”必须具有“远程”服务器上的一些特殊权限吗?

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 
+0

我读过它应该没关系,但我的本地服务器是SQL2008 R2,而我的远程服务器是SQL2005。 – unforgiven1987 2013-02-14 21:58:21

+0

关于这个问题的好文章。排除故障18456 http://sqlblog.com/blogs/aaron_bertrand/archive/2011/01/14/sql-server-v-next-denali-additional-states-for-error-18456.aspx来自Aaron Bertrand – 2013-02-14 23:37:53

回答

0

FACE SMACK

谈谈缺少树木,不见森林。不知何故,我使用错误的密码结束了。发誓我正在使用正确的,但没有。再一次,人/计算机关系中最薄弱的环节原来不是电脑。

+0

嘿嘿嘿。那些PEBKAC错误:) – 2016-06-15 23:13:53

1

既然要链接2个SQL服务器,尝试定义@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数据库?

+0

是的,我能够使用RemoteIntegrationUser(通过SSMS)连接到myremotedb。只是不通过链接服务器。我会尝试你的建议并向我汇报 – unforgiven1987 2013-02-15 16:38:28

+0

我尝试了你的每一个建议,单独和结合,我仍然得到同样的错误。 – unforgiven1987 2013-02-15 17:34:02

相关问题