このドキュメントでは、カスタムデータ監査ルールの設定に関するガイドラインを説明します。
ルール
カスタムデータ監査ルールを設定する際、すべての条件は AND ロジックで結合されます。つまり、ルールは、定義したすべての条件をイベントが満たした場合にのみトリガーされます。無効なルールを作成しないように、相互排他的な条件を設定しないでください。
混同しやすい演算子
等しい:フィールド値が設定値と完全に一致する必要があります。例:
val.equals(exp)。次を含む:フィールド値に設定値が部分文字列として含まれている場合にルールがトリガーされます。例:
val.contains(exp)。次のいずれかに属する:フィールド値が、設定されたリスト内のいずれかの値と一致する必要があります。例:
val.equals(exp1) || val.equals(exp2) || val.equals(exp3) || ...。
シナリオ例
無効なルールを作成しないように、以下の競合する構成の例をご確認ください。
シナリオ 1:アセット範囲の競合
アセット条件を設定する際、指定されたインスタンス、データベース、およびデータベーステーブルは、有効な階層関係にある必要があります。データベースが選択されたインスタンスに属していない場合、この条件は満たされず、アラート通知はトリガーされません。
例えば、以下の構成では、インスタンス名、データベース名、テーブル名に有効な階層関係がありません。したがって、この条件は満たされません。

シナリオ 2:動作と操作タイプの競合
Behavior 条件を設定する場合、設定した [SQL コンテンツ] は、実行された[操作タイプ] と一致する必要があります。一致しない場合、条件は満たされず、アラート通知はトリガーされません。
たとえば、以下の構成では、SQL コンテンツ login failed! はログイン失敗メッセージであり、Select [操作タイプ] ではなく Login [操作タイプ] に対応します。したがって、この条件は満たされません。

演算子がEqual Toの場合、対象オブジェクトは 1 つのみ選択できます。
演算子が [次のいずれかに属する] の場合、複数のターゲットオブジェクトを入力できます。Enter キーを押して区切ります。
シナリオ 3:動作と結果の競合
Behavior と Result の条件は互換性がなければなりません。両者が競合する場合、条件が満たされることはなく、アラート通知はトリガーされません。
例 1:以下の構成では、SQL コンテンツ
login failed!はログイン失敗メッセージです。このイベントは影響を受ける行数を変更しません。したがって、影響を受ける行数を確認する条件はすべて失敗します。

例 2: 以下の構成では、Behavior 条件は
login failed!に設定されており、これはログイン [失敗] ステータスを示します。これは、実行ステータスが [成功] に設定されている Result 条件と競合します。これらの条件は相互排他であるため、ルールがトリガーされることはありません。
