監査済みデータの変更履歴の取得と削除

注意

エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。

監査を有効にし、監査対象のテーブルや列へのデータ変更を行った後、データ変更履歴の取得に進むことができます。 変更履歴の参照後にオプションで監査レコードを削除することもできます。 詳細については、このトピックの最後にあるサンプル コード リンクを参照してください。

変更履歴の取得

変更履歴の取得にはいくつかのメッセージ要求を使用できます。 これらの要求は取得内容で区別されます。 監査の変更履歴を示すコードのこのサンプルを参照してください。

重要

Email.DescriptionAnnotation のような大きな列の値は、長さは 5KB または最大 5,000 文字に制限 (上限) されています。 上限付きの列の値は、テキストの最後にある 3 つのドットで認識できます (例: "loremipsum、loremip…")。

今後、監査 テーブル レコードは、Microsoft Dataverse のログ ストレージに保存されます。 FetchXML または QueryExpression を使用して監査レコードを他のテーブル レコードにリンクすることはできなくなります。

レコードの変更履歴の削除

DeleteRecordChangeHistoryRequest メッセージを使用して、特定のレコードの監査変更履歴レコードすべてを削除します。 これにより、日付範囲の監査レコードすべてを削除する代わりに、レコードの監査変更履歴を削除することができます。日付範囲の監査レコードの変更は次のセクションで扱われます。 レコードの監査変更履歴を削除するには、prvDeleteRecordChangeHistory 特権を含むセキュリティ ロールを保持するか、システム管理者である必要があります。

日付範囲の変更履歴の削除

日付範囲のauditレコードを削除するには、DeleteAuditDataRequest 要求を使用します。 監査データ レコードは古いものから新しいものへと順に削除されます。 この要求の機能は、現在の Dataverse サーバーで使われている Microsoft SQL Server のエディションによって若干異なります。 Dataverse では、Enterprise Edition の SQL Server が使われます。

現在の Dataverse サーバーで使われている SQL Server が Standard Edition の場合、データベース分割機能がサポートされていないので、DeleteAuditDataRequest 要求は、EndDate プロパティが示す最終日までに作成されたすべての監査レコードを削除します。

Dataverse サーバーで使われている SQL Server が分割サポートなしの Enterprise Edition の場合、DeleteAuditDataRequest 要求は、終了日が EndDate プロパティの日付よりも前のパーティションに含まれているすべての監査データを削除します。 空のパーティションがあれば、それも削除します。 ただし、現在の (アクティブな) パーティションと、アクティブ パーティション内のauditレコードを、この要求やその他の要求で削除することはできません。

新しいパーティションは、毎年四半期ごとに Dataverse プラットフォームが自動的に作成します。 この機能は構成も変更もできません。 パーティションの一覧を取得するには、RetrieveAuditPartitionListRequest 要求を使います。 パーティションの終了日が現在の日付よりも後の場合、そのパーティションやパーティション内の audit レコードを削除することはできません。

BulkDelete を使用して監査データを柔軟に削除する

組織が内部および外部の監査要件に準拠するために保持する必要がなくなった監査レコードを削除するには、Web API の BulkDelete または組織サービスの BulkDelete メッセージを使用します。 一括削除を使用した監査データの削除はバックグラウンドで実行され、一括削除ジョブの管理に役立つ繰り返しパターン、開始時間、およびその他のパラメーターを定義できます。

基本的な監査の一括削除の例

この基本的な例では、タイプ 64 (Web 経由のユーザー アクセス) の監査レコードを監査ログから削除します。 監査アクションの完全なリストを監査エンティティ リファレンスで検索し、必要に応じて一括削除ジョブを変更することができます。

要求

POST [Organization URI]/api/data/v9.1/BulkDelete HTTP/1.1  
Accept: application/json  
OData-MaxVersion: 4.0  
OData-Version: 4.0  

{
  "QuerySet":
      [
        {
          "EntityName": "audit",
          "Criteria": {
              "FilterOperator": "And",
              "Conditions": [
                  {
                    "AttributeName": "action",
                    "Operator": "Equal",
                    "Values": [ {"Type": "System.String", "Value": "64"} ]
                  }
              ],
              "Filters": []
          }
        }
      ],
      "JobName": "Bulk Delete of audit records with action = 64",
      "SendEmailNotification": false,
      "ToRecipients": [],
      "CCRecipients": [],
      "RecurrencePattern": "",
      "StartDateTime": "2022-02-02T10:00:00.000Z"
}

応答

HTTP/1.1 200 OK
Content-Type: application/json; odata.metadata=minimal
OData-Version: 4.0

{
  "@odata.context": "[Organization URI]/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.BulkDeleteResponse",
  "JobId": "[Job Id]"
}

参照

Dynamics 365 でのデータ管理
監査テーブル データの変更
ユーザー アクセスの監査
サンプル: 監査テーブルデータの変更

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。