2

次のすべてを実行しました。

リモートマスターデータベース:

CREATE LOGIN user1
    WITH PASSWORD = 'Password22++' 
GO

リモート認証データベース:

CREATE USER user1
    FOR LOGIN user1
    WITH DEFAULT_SCHEMA = authentication
GO

EXEC sp_addrolemember N'db_owner', N'user1'
GO

ローカル データベース:

EXEC master.dbo.sp_addlinkedserver
       @server = N'AZ3',
       @srvproduct=N'Any',
       @provider=N'MSDASQL',
       @datasrc=N'AZ3'
GO

EXEC master.dbo.sp_addlinkedsrvlogin
       @rmtsrvname=N'AZ3',
       @useself=N'False',
       @locallogin=NULL,
       @rmtuser=N'user1',
       @rmtpassword='Password22++'
GO

リンク サーバーが作成されていることがわかりますが、それを確認して次のメッセージを表示しようとすると、次のようになります。

Transact-SQL ステートメントまたはバッチの実行中に例外が発生しました。(Microsoft.SqlServer.ConnectionInfo) リンク サーバー "AZ3" の OLE DB プロバイダー "MSDASQL" がエラーを報告しました。

認証に失敗しました。

付与する必要がある役割は他にもありますか?

また、リモートのデータベースの「ABC」テーブルなどのテーブルを選択したいだけの場合、authenticationその SQL をどのようにコーディングすればよいですか?

これが私が試したことです:

SELECT * FROM OPENQUERY([AZ3],'SELECT * FROM dbo.AspNetRoles')

しかし、これも私にエラーを与えます:

リンク サーバー "AZ3" の OLE DB プロバイダー "MSDASQL" がメッセージ "[Microsoft][SQL Server Native Client 11.0][SQL Server]ステートメントを準備できませんでした。" を返しました。リンク サーバー "AZ3" の OLE DB プロバイダー "MSDASQL" がメッセージ "[Microsoft][SQL Server Native Client 11.0][SQL Server] 無効なオブジェクト名 'dbo.AspNetRoles'." を返しました。メッセージ 7350、レベル 16、状態 2、行 1 リンク サーバー "AZ3" の OLE DB プロバイダー "MSDASQL" から列情報を取得できません。

4

0 に答える 0