audit_trailing
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| audit_trailing [2022/03/25 17:11] – yves | audit_trailing [2022/04/04 10:58] (current) – [Notes on storage requirements] angelos | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Audit trailing ====== | ====== Audit trailing ====== | ||
| - | Describe what audit trailing is and why it exists; Probably needs to link to [[21_cfr_part_11|21 CFR.11]] | + | An **audit trail** (also called audit log) is a security-relevant chronological set of records that provide documentary evidence of the sequence of activities that have affected at any time a specific operation, procedure or event. In PMA.core |
| ==== How does it work? ==== | ==== How does it work? ==== | ||
| - | How did //we// implement | + | PMA.core implements audit trailing as a middleware between the application and the connection to the SQL server database. This middleware captures all requests from the application to the database and, depending on the operation, creates records on a sub-schema of the database with all the required information to recreate them. |
| + | |||
| + | The sub-schema of the audit trail database can be seen in the table diagram bellow | ||
| + | {{ :: | ||
| + | * EntityTypes: | ||
| + | * Entities: All specific entities that are available in PMA.core i.e. a specific Root Directory, specific user etc. | ||
| + | * EntityModificationEvents: | ||
| + | * EntityModificationDetails: | ||
| + | |||
| + | The **EntityModificationEvents** table in detail contains the following columns | ||
| + | * ActionType: The type of action this record represents, one of Create/ | ||
| + | * UserLogin: The user that performed this action | ||
| + | * CreatedOn: The date and time the operation occured in the database | ||
| + | * EntityId: A foreign key to the // | ||
| + | |||
| + | The **EntityModificationDetails** is connected to the **EntityModificationEvents** and contains the following columns: | ||
| + | * EventId: A foreign key to the **EntityModificationEvents** that this record describes in detail | ||
| + | * FieldName: The name of the database field that was changed. This is a field of the entity that was changed | ||
| + | * OldValue: The value before the change. This is null for Create operations | ||
| + | * NewValue: The value after the change. This is null for Delete operations | ||
| + | |||
| + | ==== Consulting ==== | ||
| + | The easiest way to consult the audit trail is via PMA.core' | ||
| + | * [[rootdir# | ||
| + | * [[user_monitoring# | ||
| + | |||
| + | For more advanced use cases you can execute SQL Queries | ||
| ==== Notes on storage requirements ==== | ==== Notes on storage requirements ==== | ||
| - | We have a way to monitor this in the installation check view, don't we? | + | Keeping an Audit trail of all changes happening in a live production PMA.core server can be quite space consuming. You can always check all storage requirements of PMA.core |
| + | {{ : | ||
| + | In that page you can check the total size of SQL database including the audit trail but also check other storages used such as the tile cache directory and the cloud cache | ||
| + | |||
| + | If the usage of Audit trail storage is getting large you can always backup the tables **EntityModificationEvents** and the **EntityModificationEvents** and safely delete all rows from these tables. | ||
| - | Also: insert some suggestions on what people can do when the audit trail becomes too large. | ||
audit_trailing.1648224699.txt.gz · Last modified: by yves
