web-dev-qa-db-ja.com

AlwaysOn可用性グループリスナーへのリンクサーバーを作成する

SQL 2014とWindows Server 2012 R2を使用して、Alwayson可用性グループをセットアップしています。グループには3つのノードがあります。 SQLサービスは、各ノードで管理されたサービスアカウントとして実行されています(サーバーごとに1 MSA)。

現在のアクティブノードを指すように、各ノードでリンクサーバーを作成しようとしています。したがって、3つのサーバーがServer1、Server2、およびServer3と呼ばれ、AlwaysOn可用性グループがSQLAAG_PRODと呼ばれるとしましょう。 SQLAAG_PRODへのリンクサーバーを作成します。

個々のノードへのリンクサーバー(たとえば、server2とServer3へのリンクを持つServer1)を作成でき、セキュリティオプション_Be made using the login's current security context_を使用して正常に動作します。

しかし、グループリスナーへのリンクサーバーを作成しようとすると、_Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON_が表示されます

現在のアクティブサーバーにSAパスワードを使用するようにセキュリティモードを変更すると、すべてが機能しますが、明らかなセキュリティ上の理由から、これは許容できるソリューションではありません。

SPNをセットアップしてアカウントに委任を許可する必要があることについては、たくさん読んだ。 Active DirectoryのSQLAAG_PRODオブジェクトでTrust this computer for delegation to any service (Kerberos only)をオンにしましたが、それでも同じ問題が発生します。

誰かがこれを以前に見たことがありますか、これを設定する方法のガイドはありますか?

===更新===

それが役立つかどうかはわかりませんが、実行すると

_select auth_scheme from sys.dm_exec_connections where session_id=@@SPID
_

ノードに直接接続するとKERBEROSが表示されますが、SQLAAG_PRODに接続して同じクエリを実行すると、NTLMが表示されます

4
Greg

最後にここでチュートリアルを見つけました: http://www.derekseaman.com/2014/10/sql-2014-always-ag-pt-12-kerberos.html

私の問題は、SQLデータベースエンジンの実行に使用される管理されたサービスアカウントに対して可用性グループのSPNを登録する必要があることでした(リンクの手順8)。これを実行して、クラスター内の3つのサーバーをすべて再起動すると、すべてが機能します。

2
Greg