監査ログは、利用者のデータベースへの不正アクセスの脅威に対抗するための機能です。利用者のデータベースに対する操作を監査ログとしてログファイルに記録します。
Forguncyの監査ログはテーブル単位で設定します。
1 監査ログを設定したいテーブルを[ナビゲーション ウィンドウ]からダブルクリックして開きます。
2 右ペインで監査ログを取りたい操作をチェックします。

監査ログは以下の場所に保存されています。なお、監査ログはデバッグ実行では出力されません。Forguncy Serverへ発行したアプリケーションでのみ出力されます。
ログファイルの保存場所
Forguncy Serverの実行アカウントを既定の「Local System」から変更している場合、異なる場所に監査ログが出力されます。
| 
       Forguncy Serverの実行アカウント  | 
    
       監査ログの出力場所  | 
|---|---|
| 
       ローカルシステムアカウント(既定)  | 
    
       C:\Windows\Temp\Forguncyデータアクセスログ  | 
| 
       特定のユーザーアカウント  | 
    
       C:\Users\<ユーザー名>\AppData\Local\Temp\Forguncyデータアクセスログ  | 
ログファイルのファイル名
Forguncyデータアクセスログ_<アプリケーションパス>.csv
※<アプリケーションパス>の部分には、発行時に設定した[アプリケーションパス]が入ります。
Forguncy Serverのプロセスは、監査ログを書き込むときにのみこのCSVファイルをつかんだ状態となり、書き込みが終了した段階で解放されます。そのため、Forguncy Serverを停止させることなく、監査ログのCSVファイルを編集、削除することが可能です。監査ログのCSVファイルを削除した場合には、次の監査ログの書き込みの際に自動的に再作成されます。
ログファイルに含まれる項目
ログファイルには以下の項目が含まれています。先頭行は項目名となっており、記録された情報は2行目以降に出力されています。
| 
       日時  | 
    
       参照、または変更が行われた日時が出力されます。  | 
|---|---|
| 
       テーブル種  | 
    
       以下のどちらかのテーブルの種類が出力されます。 
  | 
| 
       データベース接続文字列  | 
    
       テーブル種が「リンクテーブル」の場合、接続文字列が出力されます。テーブル種が「Forguncyテーブル」の場合、「該当なし」が出力されます。  | 
| 
       オブジェクト名  | 
    
       データベースのテーブル名が出力されます。  | 
| 
       ユーザーアカウント名  | 
    
       参照、または変更を行ったユーザーアカウント名が出力されます。ユーザー認証を行っていない場合、何も出力されません。  | 
| 
       IPアドレス  | 
    
       参照、または変更を行ったユーザーのIPアドレスが出力されます。  | 
| 
       アクション  | 
    
       以下のアクションの種類が出力されます。 
  | 
| 
       成功  | 
    
       操作が成功したかどうかが出力されます。成功した場合、「有効」と出力されます。  | 
| 
       ステートメント  | 
    
       操作の詳細が分かる論理SQL文が出力されます。このSQL文は実際にデータソースに対して発行されたSQL文ではなく、操作の詳細を表現するためのデータソースに依存しない論理SQL文であることに注意してください。  | 
以下に出力されるステートメントの例を紹介します。
テーブルデータ
| 
       読み取り  | 
    
       テーブルデータの読み取り SELECT TOP 500 [Order ID], [Total Price] FROM [Order Details] WHERE [Order ID] GreaterThan 10001 ORDER BY [Order ID] ASC 集計フィールドを含むテーブルの読み取り SELECT TOP 500 [Order ID], [Count] FROM [Order Details] GROUP BY [Order ID] テーブルの単一行の読み取り SELECT [Order ID], [Product ID], [Unit Price], [Quantity], [Discount] FROM [Order Details] WHERE ([Order ID] EqualsTo 10002 AND [Product ID] EqualsTo 31) テーブルのレコード数の読み取り SELECT COUNT FROM [Order Details] レコードナビゲーション型セルによる単一行の読み取り SELECT NO.1 RECORD [Order ID], [Product ID], [Unit Price], [Quantity], [Discount] FROM [Order Details] SELECT NO.12 RECORD [Order ID], [Product ID], [Unit Price], [Quantity], [Discount] FROM [Order Details] SELECT LAST RECORD [Order ID], [Product ID], [Unit Price], [Quantity], [Discount] FROM [Order Details]  | 
|---|---|
| 
       追加  | 
    
       INSERT ROW([Order ID]=10000, [Product ID]=25, [Unit Price]=12, [Quantity]=2, [Discount]=0) INTO [Order Details]  | 
| 
       更新  | 
    
       UPDATE [Order Details] SET ([Order ID]=10001, [Product ID]=25, [Unit Price]=10, [Quantity]=30, [Discount]=0.15) IN ROW([Order ID]=10001, [Product ID]=25, [Unit Price]=9.8, [Quantity]=30, [Discount]=0.15, [rowversion]=System.Byte[])  | 
| 
       削除  | 
    
       DELETE ROW([Order ID]=10000, [Product ID]=17, [Unit Price]=27, [Quantity]=4, [Discount]=0, [rowversion]=System.Byte[]) FROM [Order Details]  | 
ワークフロー
| 
       ワークフロー情報の読み取り  | 
    
       SELECT [WorkFlowInfo] OF [Order Details].RECORD([Order ID]=10000)  | 
|---|---|
| 
       ワークフロー履歴の読み取り  | 
    
       SELECT [WorkFlowHistory] OF [Order Details].RECORD([Order ID]=10000)  | 
| 
       ワークフローアクションの実行  | 
    
       UPDATE [WorkFlowInfo] OF [Order Details].RECORD([Order ID]=10000) FROM ([Assignee]=) TO ([Assignee]=Administrator, [Comment]=change assignee) BY Action[Change Assignee])  |