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