SQL Server (データベース エンジン ドメイン アカウント) に Kerberos を構成しようとしています。次のコマンドを実行しました。
SETSPN -A MSSQLSvc/MyDBServer:1433 MyDomain\SQLServerService
MyDBServer をサーバーの FQDN に置き換え、MyDomain\SQLServerService を自分のアカウントの名前に置き換えます。
次にクエリを実行しました:
SELECT s.session_id、c.connect_time、s.login_time、s.login_name、c.protocol_type、c.auth_scheme、s.HOST_NAME、s.program_name FROM sys.dm_exec_sessions s JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
これは NTLM を返します。つまり、Kerberos ではありません。何が足りないのでしょうか? アカウントには委任タブが用意されているので、spn ビットは完全に正常に機能しました。委任タブでいくつかの設定を行う必要はありませんか? Sharepoint 2010 (セットアップする予定) に Kerberos を設定する場合に、この現象を確認しました。
ありがとう
答え1
SQL Server を記述するための異なる構文の SPN を登録する必要があることがわかりました。何らかの理由で、SQL は認証の過程で異なる構文を使用します。これらの各形式を登録します。
MSSQLSvc/SqlServerName.perrigo.com:instancename
MSSQLSvc/SqlServerName:instancename
MSSQLSvc/SqlServerName.domainname.com:1433
MSSQLSvc/SqlServerName:1433
MSSQLSvc/SqlServerName.domainname.com
MSSQLSvc/SqlServerName
答え2
ローカルホストでの接続でテストしましたか?
SPN がある場合でも、一部のローカルホストのケースでは NTLM へのフォールバックがあるようです (おそらく、ローカル マシンで Kerberos は必要ないため、パフォーマンス上の理由による)。