リンク サーバーの委任用の構成
SQL Server と Windows の構成で、認証済みの Windows ユーザーの資格情報を転送することにより、ある SQL Server インスタンスに接続されたクライアントを別の SQL Server インスタンスに接続できるように指定することができます。このような処理は、委任と呼ばれます。委任では、ある Windows ユーザーが Windows 認証を使用して接続している SQL Server のインスタンスから別のインスタンスと通信する際に、そのユーザーの権限が借用されます。特定のリンク サーバーに対する特定のログインに自己マッピングを使用する場合、分散クエリにはセキュリティ アカウントの委任が必要になります。
委任の要件
委任の要件を理解するために、SQL Server のインスタンス SQLSERVER1 を実行しているサーバーに接続するクライアント コンピューターに、あるユーザーがログオンする、というシナリオを考えてみます。そのユーザーは、リンク サーバー SQLSERVER2 上で特定のデータベースに対して分散クエリを実行します。あるコンピューターを別のコンピューターに接続することで 3 番目のコンピューターに接続するこのシナリオは、ダブル ホップと呼ばれます。
注 |
---|
サーバーに接続する SQL Server Management Studio などのクライアント アプリケーションが、クエリ対象の SQL Server インスタンスと同じコンピューター上で実行されている場合でも、リンク サーバーは委任用に構成する必要があります。 |
クライアントの要件
ユーザーの Windows 認証済みログインには、SQLSERVER1 と SQLSERVER2 へのアクセス権が必要です。
ユーザーの Active Directory プロパティ [アカウントは重要なので委任できない] チェック ボックスはオフにしておいてください。
クライアント コンピューターで TCP/IP ネットワーク接続または名前付きパイプ ネットワーク接続を使用している必要があります。
1 番目/中間サーバー (SQLSERVER1) の要件
サーバーには、ドメイン管理者によって登録された SPN が必要です。
SQL Server を実行しているアカウントは、委任について信頼されている必要があります。
サーバーで TCP/IP ネットワーク接続または名前付きパイプ ネットワーク接続を使用している必要があります。
2 番目のサーバー SQLSERVER2 はリンク サーバーとして追加する必要があります。この操作を行うには、sp_addlinkedserver ストアド プロシージャを実行します。次に例を示します。
EXEC sp_addlinkedserver 'SQLSERVER2', N'SQL Server' EXEC sp_addlinkedserver 'SQLSERVER2', N'SQL Server'
リンク サーバーのログインを自己マッピング用に構成しておく必要があります。この操作を行うには、sp_addlinkedsrvlogin ストアド プロシージャを実行します。次に例を示します。
EXEC sp_addlinkedsrvlogin 'SQLSERVER2', 'true' EXEC sp_addlinkedsrvlogin 'SQLSERVER2', 'true'
2 番目のサーバー (SQLSERVER2) の要件
TCP/IP ネットワーク接続を使用する場合、サーバーにはドメイン管理者によって登録された SPN が必要です。
サーバーで TCP/IP ネットワーク接続または名前付きパイプ ネットワーク接続を使用している必要があります。