現象
Microsoft SQL Server 2022、Microsoft SQL Server 2019、または Microsoft SQL Server 2016 Service Pack 2 (SP2) のセキュリティ ログに書き込むよう、複数の SQL Server 監査イベントを構成したとします。 このシナリオでは、最初のサーバー監査を除くすべてのサーバー監査が書き込まれないことがわかります。 さらに、2 つ目のサーバー監査を追加すると、SQL Server エラー ログに次のようなエラー メッセージが表示される場合があります。
エラー: 33204、重大度: 17、状態: 1。
SQL Server 監査をセキュリティ ログに書き込めませんでした。
原因
この問題は、レジストリ イベント ソース フラグが 0 に設定されている場合に発生します。
回避策
この問題を回避するには、以下のいずれかの方法を使用します。
-
SQL Server セキュリティ ログではなくファイルに書き込まれるサーバー監査イベントを設定します。
-
複数のサーバー監査イベントを有効にして SQL Server セキュリティ ログに書き込むには、次のレジストリ サブキーの値を 0 から 1:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Security\MSSQL$<InstanceName>$Audit\EventSourceFlagsに変更します。
注: 新しいレジストリ設定を有効にするには、サーバー監査を再起動する必要があります。
ALTER SERVER AUDIT [AuditName] WITH (STATE = OFF) GO ALTER SERVER AUDIT [AuditName] WITH (STATE = ON) GO
重要: レジストリを誤って編集すると、システムが深刻な損傷を受ける可能性があります。 レジストリを変更する前に、コンピューター上の価値のあるデータをバックアップすることをお勧めします。
解決方法
この問題は、SQL Server の次の累積的な更新プログラムで修正されています。
注: 既存のインスタンスに対して SQL Server 2022 累積的な更新プログラム 6 (CU6) 以降のバージョンをインストールした後でも、既存のレジストリ値が変更されないため、回避策が必要です。 新しいインスタンスの場合、修正プログラムの適用後に正しいレジストリ値が使用されます。
SQL Server の新しい累積的な更新プログラムには、以前のビルドにあったすべての修正プログラムとセキュリティ修正プログラムが含まれています。 SQL Server のバージョンの最新のビルドをインストールすることをお勧めします。
SQL Server 2016 のサービス パック情報
この問題は、SQL Server の次の Service Pack で修正されています。
サービス パックは累積的です。 Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 このサービス パックの最新の Service Pack と最新の累積的な更新プログラムを適用することをお勧めします。 最新のサービス パックをインストールする前に、以前のサービス パックをインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の記事の表 1 を参照してください。
状態
マイクロソフトでは、この問題をこの資料の対象製品として記載されているマイクロソフト製品の問題として認識しています。
関連情報
Microsoft がソフトウェア更新プログラムの説明に使用する 用語 について説明します。