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
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 に答える