このトピックでは、SQL Server Management Studio または Transact-SQL を使用して、SQL Server 2014 でサーバー監査とデータベース監査の仕様を作成する方法について説明します。
SQL Server または SQL Server データベースのインスタンスの監査には、システムで発生するイベントの追跡とログ記録が含まれます。 SQL Server 監査オブジェクトは、監視するサーバー レベルまたはデータベース レベルのアクションとアクションのグループの単一のインスタンスを収集します。 監査は SQL Server インスタンス レベルで行われます。 SQL Server のインスタンスごとに複数の監査を使用できます。 Database-Level Audit Specification オブジェクトは監査に属しています。 各監査では、SQL Server データベースごとに 1 つのデータベース監査の仕様を作成できます。 詳細については、「SQL Server Audit (データベース エンジン)」を参照してください。
このトピックについて
作業を開始する準備:
サーバー監査とデータベース監査の仕様を作成するには、次を使用します。
開始する前に
制限事項と制約条件
データベース監査仕様は、特定のデータベースに存在するセキュリティ保護不可能なオブジェクトです。 データベース監査仕様が作成されると、無効な状態になります。
ユーザー データベースでデータベース監査仕様を作成または変更する場合は、システム ビューなどのサーバー スコープ オブジェクトに対する監査アクションを含めないでください。 サーバー スコープのオブジェクトが含まれている場合は、監査が作成されます。 ただし、サーバー スコープのオブジェクトは含まれないので、エラーは返されません。 サーバー スコープ オブジェクトを監査するには、master データベースのデータベース監査仕様を使用します。
データベース監査仕様は、 tempdb
システム データベースを除き、作成されるデータベース内に存在します。
安全
権限
ALTER ANY DATABASE AUDIT 権限を持つユーザーは、データベース監査仕様を作成し、任意の監査にバインドできます。
データベース監査仕様を作成した後は、CONTROL SERVER、ALTER ANY DATABASE AUDIT 権限、または sysadmin アカウントを持つプリンシパルによって表示できます。
SQL Server Management Studio の使用
サーバー監査を作成するには
オブジェクト エクスプローラーで、[ セキュリティ ] フォルダーを展開します。
[監査] フォルダーを右クリックし、[新しい監査...] を選択します。詳細については、「サーバー監査およびサーバー監査仕様の作成」を参照してください。
オプションの選択が完了したら、[ OK] をクリックします。
データベース レベルの監査仕様を作成するには
オブジェクト エクスプローラーで、監査仕様を作成するデータベースを展開します。
[セキュリティ] フォルダーを展開します。
[データベース監査仕様] フォルダーを右クリックし、[新しいデータベース監査の仕様...] を選択します。
[ データベース監査仕様の作成 ] ダイアログ ボックスでは、次のオプションを使用できます。
名前
データベース監査仕様の名前。 これは、新しいサーバー監査仕様を作成するときに自動的に生成されますが、編集可能です。監査
既存のデータベース監査の名前。 監査の名前を入力するか、一覧から選択します。監査アクションの種類
キャプチャするデータベース レベルの監査アクション グループと監査アクションを指定します。 データベース レベルの監査アクション グループと監査アクションの一覧と、そのグループに含まれるイベントの説明については、「 SQL Server 監査アクション グループとアクション」を参照してください。オブジェクト スキーマ
指定した オブジェクト名のスキーマを表示します。[オブジェクト名]
監査するオブジェクトの名前。 これは監査アクションでのみ使用できます。監査グループには適用されません。省略記号 (...)
指定した監査アクションの種類に基づいて、使用可能なオブジェクトを参照して選択する [オブジェクトの選択] ダイアログを開きます。プリンシパル名
監査対象のオブジェクトに対して監査をフィルター処理するアカウント。省略記号 (...)
[ オブジェクトの選択 ]ダイアログ ボックスを開き、指定したオブジェクト名に基づいて使用可能なオブジェクトを参照して選択 します。オプションの選択が完了したら、[ OK] をクリックします。
Transact-SQL の使用
サーバー監査を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。
USE master ; GO -- Create the server audit. CREATE SERVER AUDIT Payrole_Security_Audit TO FILE ( FILEPATH = 'C:\Program Files\Microsoft SQL Server\MSSQL12.MSSQLSERVER\MSSQL\DATA' ) ; GO -- Enable the server audit. ALTER SERVER AUDIT Payrole_Security_Audit WITH (STATE = ON) ;
データベース レベルの監査仕様を作成するには
オブジェクト エクスプローラーで、 データベース エンジンのインスタンスに接続します。
標準バーで [新しいクエリ] をクリックします。
次の例をコピーしてクエリ ウィンドウに貼り付け、 [実行] をクリックします。 この例では、
Audit_Pay_Tables
と呼ばれるデータベース監査仕様を作成し、dbo
ユーザーによる SELECT ステートメントと INSERT ステートメントを、上記で定義したサーバー監査に基づいてHumanResources.EmployeePayHistory
テーブルに対して監査します。USE AdventureWorks2012 ; GO -- Create the database audit specification. CREATE DATABASE AUDIT SPECIFICATION Audit_Pay_Tables FOR SERVER AUDIT Payrole_Security_Audit ADD (SELECT , INSERT ON HumanResources.EmployeePayHistory BY dbo ) WITH (STATE = ON) ; GO
詳細については、 CREATE SERVER AUDIT (Transact-SQL) と CREATE DATABASE AUDIT SPECIFICATION (Transact-SQL) に関するページを参照してください。