SQL Server 2012では、いくつかの新しい監査アクショングループが導入されました。私が使用することに興味がある2つは、データベースレベルでログオン/オフを監査することです。
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
DATABASE_LOGOUT_GROUP
問題は、これをデプロイしたいSQL Server 2008 R2インスタンスもあることです。ネイティブSQL Server Auditを使用してこれを実現する代替手段はありますか?または、他の方法(SQLプロファイラートレース、ログオン/ログオフトリガーなど)でこれを行う必要がありますか?
SQL Server 2012では、「包含データベース」機能の一部としてデータベースレベルのログオン/ログオフ監査追跡が導入され、SQL Serverログインをデータベースレベルで定義できるようになりました。以前のバージョンのSQL Serverでは、databaseレベルでのログインやログアウトの概念はありません。
Microsoft Docs から:
SUCCESSFUL_DATABASE_AUTHENTICATION_GROUP
プリンシパルがcontainedデータベースに正常にログインしたことを示します。 Audit Successful Database Authentication Event Classと同等です。DATABASE_LOGOUT_GROUP
このイベントは、含まれているデータベースユーザーがデータベースからログアウトしたときに発生します。 Audit Database Logoutイベントクラスと同じです。
含まれているデータベースを使用していて、含まれているログインを介してそれらのデータベースに接続されていない限り、これらの監査にはログイン/ログアウトイベントが反映されないことに注意してください。
2008 R2のSQL Server監査には、serverレベルで成功したログインと失敗したログインを監査する機能が含まれています。
SUCCESSFUL_LOGIN_GROUP
FAILED_LOGIN_GROUP
または、「サーバーのプロパティ」ダイアログの「セキュリティ」タブで「ログイン監査」を設定できます。
SSMSで、[オブジェクトエクスプローラー]パネルのサーバー名を右クリックします。次に、リストから「プロパティ」を選択します。 [セキュリティ]ページを選択し、[ログイン監査]セクションから[失敗したログインと成功したログインの両方]を指定します。
ログイン監査エントリはSQL Serverエラーログに書き込まれます。次のコマンドでそれらを表示できます。
EXEC sys.xp_readerrorlog 0, 1, 'Login';