現象
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 用の最新ビルドをインストールすることをお勧めします。
SQL Server 2016 の Service Pack の情報
この問題は、次の SQL Server の Service Pack で修正されています。
Service Pack 2 (SQL Server 2016)
SQL Server の Service Pack について:
Service Pack は累積的であり、 最新の Service Pack には新しい修正プログラムと共に、それ以前の Service Pack に含まれていたすべての修正プログラムが含まれています。 マイクロソフトでは、最新の Service Pack と、その Service Pack 用の最新の累積的な更新プログラムを適用することをお勧めします。 最新の Service Pack をインストールする前に、以前の Service Pack をインストールする必要はありません。 最新の Service Pack と最新の累積的な更新プログラムの詳細については、次の資料の表 1 を参照してください。
SQL Server とそのコンポーネントのバージョン、エディション、および更新プログラムのレベルを確認する方法
状態
Microsoft は、これが "適用対象" セクションに記載されている Microsoft 製品の問題であることを確認しました。
参考資料
マイクロソフトでソフトウェア更新プログラムの説明に使用する用語集を参照してください。