今回は、SQL Server の動作をプロファイラをつかって監視する方法をまとめます。
SQL Server のセキュリティ運用では、アクセスが正常に行われているか、不審な動作がないか、適切なアクセス権が設定されているかどうか、監視する必要があります。
そこで、SQL Server の監視ツール「プロファイラ」を利用したセキュリティ監視を確認しておきます。
「プロファイラ」は、SQL Server 製品に付属するアプリケーションで、SQL Serverへのアクセスをすべて記録することができます。
記録するイベントを自分で選択することもできます。
セキュリティに関するイベントは次のとおりです。
■セキュリティ監査イベント (21種類)
- Audit Add DB User Event
データベースへのユーザーの追加/削除
- Audit Add Login to Server Role Event
固定サーバーロールへのログインの追加/削除
- Audit Add Member to DB Role Event
データベース ロールへのメンバの追加/削除
- Audit Add Role Event
データベース ロールの追加/削除
- Audit Addlogin Event SQL Serve
ログインの追加/削除
- Audit App Role Change Password Event
アプリケーションロールのパスワードの変更
- Audit Backup/Restore Event
バックアップ、リストア
- Audit Change Audit Event
監査変更
- Audit DBCC Event
DBCC コマンド
- Audit Login Event
ログインの接続
- Audit Login Change Password Event SQL Server
SQL Server 認証ログインのパスワード変更
- Audit Login Change Property Event
ログインのパスワード以外のプロパティの変更
- Audit Login Failed Event
ログイン接続の失敗
- Audit Login GDR Event
Windows 認証ログインの許可/拒否/取消
- Audit Logout Event
ログイン切断
- Audit Object Derived Permission Event
オブジェクトの作成/削除/変更
- Audit Object GDR Event
オブジェクトのアクセス権限の作成/削除/変更
- Audit Object Permission Event
オブジェクトへのアクセス時の権限の確認
- Audit Server Starts and Stops Event
サービスのシャットダウン/起動/一時停止
- Audit Statement GDR Event
ステートメント権限の許可/拒否/削除
- Audit Statement Permission Event
ステートメント実行時の権限の確認
このうち、プロファイラの標準のトレーステンプレートは、Audit Login Event, Audit Logout Event のみ設定されています。これによって、いつ誰が SQL Server に接続/切断したのかを記録することができます。
では、このイベントの具体的な使用例を紹介しましょう。
- パスワードが間違って接続しようとしている
「13. Audit Login Failed Event」
を設定しておきます。
ログインに失敗した場合、このイベントが記録されます。
このイベントがあがった場合の原因としては、パスワードが間違っている、
アクセス権がない、または拒否に設定されているなどがあります。
- あるテーブルがアクセスされているかどうかを知りたい
「18. Audit Object Permission Event」
を設定しておきます。
トレースプロパティのフィルタの「ObjectName」の Like プロパティに検査したいテール名を指定します。
これにより、テーブルを利用しているログイン,ユーザーを知ることができます。
ストアドプロシージャの中で呼び出されている場合は、元のストアドプロシージャ
名も知ることができます。
- 権限の変更を記録したい
「17. Audit Object GDR Event」
を設定しておきます。
アクセス権限が不正に緩められてしまったりすることがないように監視することがでます。
プロファイラを利用することで、SQL Server の動作を詳細に監視することができます。
なお、多くのイベントを監査するように設定すると、サーバーのパフォーマンスに影響します。
監視要件にあわせて、サーバーに十分なパフォーマンスを確保するか、監視するイベントを絞り込むようにしてください。
運用中のサーバーに対してプロファイラで接続する場合には、サーバーのパフォーマンスに余裕があるか、接続前に確認してください。