MS SQL ServerがNTLM認証を使用しているのはなぜですか?


12

Windows Server 2008 R2。

SQL Server 2008 R2がインストールされています。

MSSQLサービスはローカルシステムとして実行されます。

サーバーのFQDNはSQL01.domain.comです。

SQL01は、domain.comという名前のActive Directoryドメインに参加しています。

以下は、setspnの出力です。

C:\> setspn -L sql01
...
MSSQLSvc/SQL01.domain.com:1433
MSSQLSvc/SQL01.domain.com
WSMAN/SQL01.domain.com
WSMAN/SQL01
TERMSRV/SQL01.domain.com
TERMSRV/SQL01
RestrictedKrbHost/SQL01    
RestrictedKrbHost/SQL01.domain.com
HOST/SQL01.domain.com
HOST/SQL01

次に、SQL Server Management Studioを起動して、SQL01に接続します。

ここに画像の説明を入力してください

次に、次のクエリを実行します。

SELECT auth_scheme FROM sys.dm_exec_connections WHERE session_id = @@spid 

そしてその結果がNTLMです。結果がKerberosではないのはなぜですか?SPNは、ローカルシステムアカウントを使用するために正しいようです。サーバーがクラスター内にないか、CNAMEを使用していません。


質問に答えるだけで、コミュニティがすべての利益を享受できます。
mdpc

回答:


15

これは、SQL Serverをホストしたのと同じサーバーからローカルにSQL Serverに接続していたためです。ネットワーク上の別のマシンから接続する場合、使用される認証メカニズムは予想どおりKerberosです。

ローカルに接続する場合、SQL Serverは常にNTLMを使用します。Kerberosは、リモートで接続する場合にのみ使用されます。

SQL Server Protocols Blogからのこの投稿は、日付はありますが、同じことを言っています。

1)SPNが存在する場合、TCP / IPを介してリモート接続するときにKerberosが使用されます。

2)SPNが存在する場合、XPでローカルtcp接続を行うときにKerberosが使用されます。

3)NTLMは、WIN 2K3でローカル接続を行うときに使用されます。

4)NTLMはNP接続で使用されます。

5)SPNが見つからない場合、NTLMはTCP接続で使用されます。


3
すごいこの作業(研究)を何時間もSPNと削除で行ってきました。これは感謝でした!:)
wchoward
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.