1

リンクサーバー(Excel用)を作成しました。以下のようなクエリを実行すると

SQL Server Management Studio を Windows 認証に接続し、以下のクエリを実行すると機能します。

select * from linkserver...sheet1$

sa アカウントでログインすると、同じクエリで次のエラーが発生します。

 The OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "exportlink"
 reported an error. The provider did not give any information about the error.
 Msg 7303, Level 16, State 1, Line 1
 Cannot initialize the data source object of OLE DB provider   
 "Microsoft.ACE.OLEDB.12.0" for     linked server "linkedserver

セキュリティ上の問題のようですが、修正方法がわかりません。

4

1 に答える 1

0

既定では、リンク サーバーは現在のユーザー資格情報をリンク サーバーに渡します。

マッピングはsp_addlinkedsrvloginによって作成され、デフォルトはこのビットに記載されています

sp_addlinkedserver を実行すると、ローカル サーバー上のすべてのログインとリンク サーバー上のリモート ログインの間の既定のマッピングが自動的に作成されます。既定のマッピングでは、ログインに代わってリンク サーバーに接続するときに、SQL Server がローカル ログインのユーザー資格情報を使用するように指定されています。これは、ローカル ユーザー名を指定せずに、リンク サーバーに対して @useself を true に設定して sp_addlinkedsrvlogin を実行することと同じです。sp_addlinkedsrvlogin は、既定のマッピングを変更する場合、または特定のローカル ログイン用の新しいマッピングを追加する場合にのみ使用してください。

「sa」を使用する場合、(よくわからないのでテストできません) SQL Server サービス アカウントを使用します。これを許可する必要があります。

SQL Server サービス アカウントを使用しない場合は、"sa" のマッピングを設定する必要があります。

EXEC sp_addlinkedsrvlogin
        'linkserver', 'FALSE', 'sa', 'Domain\SomeUser', 'Somepassword';
于 2012-10-16T12:34:52.723 に答える