リソース

/

ACP 実習ノート

[第47回] 遮断されたSQL実行を通知で受け取る

DBアクセス制御 · 運用管理

2026年11月13日

権限外SQLの遮断の次に、担当者が監査を開かなくても試行を知れるか気になった。

 

AlertsでRead-OnlyのUPDATE遮断を通知し監査と比較した。止めるだけでなく担当へ伝えるところまでつながった。

 

通知先をつなぐ

GeneralのChannelsでHTTPを作り、Macの簡単な受信先を登録した。下の受信画面は実送信内容を見せるための実習UIだ。

 

Body Templateは初期値の {{message}}を使い、Alertsの文面を送る構成にした。

 

画面1. ローカルHTTP受信先を登録した。
画面1. ローカルHTTP受信先を登録した。

今回DBの遮断SQLだけを通知する

Alertsの種別は Prevented SQL Executionとし、対象は既存の DB Privilege Account Lab 一つに絞った。このDBの権限外操作に集中できる。

 

変数で人・接続・時刻・SQL種別・原文を入れ、発生時に値を埋める。受信者が状況を把握できる情報を選んだ。

 

画面2. 特定接続のPrevented SQL Executionを条件にした。
画面2. 特定接続のPrevented SQL Executionを条件にした。

参照は成功し変更は止まる

テスト利用者はRead-Onlyのみ。41001はREADY、25,000ウォンと正常に返った。

 

画面3. 許可されたSELECTは成功した。
画面3. 許可されたSELECTは成功した。

同接続でEP47_BLOCKEDへUPDATEすると、 No permission to execute UPDATE statementと出て、参照権限による変更はQueryPieが遮断した。

 

画面4. 権限外UPDATEは実行時に止まった。
画面4. 権限外UPDATEは実行時に止まった。

再参照も元データもREADYのままで、必要参照は続き未許可変更は反映されなかった。

 

画面5. 遮断後も元データを維持した。
画面5. 遮断後も元データを維持した。

その遮断SQLが通知で届く

受信は1件で、正常参照二回の間のUPDATEだった。利用者・接続・実DBアカウント・UPDATE原文が含まれた。

 

画面6. 実遮断イベントが実習HTTP受信先へ届いた。
画面6. 実遮断イベントが実習HTTP受信先へ届いた。

実行も受信も13:28:31だった。テスト送信はせず、実際のSQL遮断による通知だ。

 

単なるエラー通知より人とSQLがあるため、誰がどこで何を試したか素早く把握できる点が有用だった。

 

送信結果と監査を確認する

Alerts詳細のLogsに応答ok、状態 Successと13:28:31があり、設定だけでなく実送信を確認できた。

 

画面7. 送信履歴に応答とSuccessが残った。
画面7. 送信履歴に応答とSuccessが残った。

Query Auditも同時刻の開発者・Read-Onlyで、前後SELECTはSuccess、UPDATEはFailure・Preventedだった。

 

画面8. 同時刻の監査で人と権限を確認した。
画面8. 同時刻の監査で人と権限を確認した。

詳細には通知と同じSQLとUPDATE権限不足が残り、受信した作業を監査でも追えた。

 

画面9. 遮断SQLと権限不足理由を確認した。
画面9. 遮断SQLと権限不足理由を確認した。

参照許可、変更遮断、試行通知までつながった。全監査を常時見ず必要事象を受け取れ、制御と運用確認の負担軽減を併せる機能と感じた。