web-dev-qa-db-ja.com

ログインせずに混合モード認証が有効になっているかどうかを確認しますか?

SQL Serverにログオンせずに、SQL Serverで混合モード認証が有効になっているかどうかを確認することはできますか?

12
Jez

もう1つのアプローチは、SQL認証を使用してログインを試行することです。成功しない明らかに偽のアカウントを使用します。次に、メモ帳を使用してC:\Program Files\Microsoft SQL Server\$instance folder$\MSSQL\Log\ERRORLOGファイルを開き、このエラーのいずれかを確認できます...

エラー:18456、重大度:14、状態:58
ユーザー「polly_wants_a_cracker」のログインに失敗しました。理由:SQL認証を使用したログインの試行が失敗しました。サーバーはWindows認証専用に構成されています。

これは、混合モード認証が有効になっていないことを意味します

...またはこれ...

エラー:18456、重大度:14、状態:5
ユーザー「polly_wants_a_cracker」のログインに失敗しました。理由:指定された名前に一致するログインが見つかりませんでした。

これは、混合モード認証が有効であることを意味します

私はどちらかなしで伝える方法がおそらくあることを知りません:

  • ログイン成功
  • ボックス(またはリモートレジストリ)に物理的にアクセスして、レジストリ設定( Julienの説明 )またはログイン時の状態/メッセージのエラーログを確認する失敗しました
15
Aaron Bertrand

レジストリで確認できます。

HKLM\Software\Microsoft\Microsoft SQL Server\ [instancename] \MSSqlServer

現在のモードはLoginModeキーに記録されます。

値(DWORD)は次のいずれかです。

  • 1 = Windows認証モード
  • 2 = SQL ServerおよびWindows認証モード

注意:

  • 02と同等です
  • レジストリ(およびサーバー)へのアクセスが必要です
18

PowerShellを使用してこれを行うこともできます。

import-module sqlserver
$sqlserver = "ServerName"
$srv = Get-SqlServer -sqlserver $sqlserver
$srv.LoginMode

これは次のような出力を返します:

enter image description here

2
RonDBA