Service SQL IBM i (AS/400) · Fonction table
SYSTOOLS.AUDIT_JOURNAL_ZC
Audit des objets modifiés (ZC)
Lit dans le journal d'audit les entrées ZC : objets ouverts ou modifiés, y compris dans l'IFS, avec le travail, l'utilisateur et le chemin concernés.
À quoi ça sert
Cette fonction de table lit les entrées de type ZC du journal d'audit système (QAUDJRN) : elles tracent les changements d'objets, bibliothèque ou IFS. Chaque ligne indique quand, par quel profil USER_NAME, depuis quel travail et quel programme l'accès a eu lieu, et sur quel objet (LIBRARY_NAME, OBJECT_NAME, PATH_NAME, IFS_OBJECT_NAME).
Elle sert aux audits de sécurité et aux enquêtes : savoir qui a modifié un fichier de données dans l'IFS, ou quel programme a changé un objet sensible. Les entrées n'existent que si la valeur système d'audit et l'audit d'objets sont configurés pour les produire.
Les paramètres délimitent la lecture : STARTING_TIMESTAMP et ENDING_TIMESTAMP, ou une plage de récepteurs et de séquences, ainsi que USER_NAME, JOB et PROGRAM. Par rapport à DSPJRN, le SQL permet de filtrer, trier et regrouper directement le résultat.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT IFS_OBJECT_NAME, PATH_NAME, ACCESS_TYPE FROM TABLE(
SYSTOOLS.AUDIT_JOURNAL_ZC(
STARTING_TIMESTAMP => CURRENT TIMESTAMP - 7 DAYS ))
WHERE ENTRY_TYPE = 'C' AND IFS_OBJECT_NAME LIKE 'data%'
ORDER BY PATH_NAME, IFS_OBJECT_NAME
Aucune entrée de ce type dans le journal d'audit sur les 90 derniers jours : ce type d'événement n'est pas audité ou ne s'est pas produit sur notre IBM i de test.
L'exemple d'IBM
Lister les objets de l'IFS dont le nom commence par « data » et qui ont été modifiés au cours de la dernière semaine.
-- Description: List objects in the IFS that start with the letters 'data' that were
-- modified in the last week.
SELECT IFS_OBJECT_NAME, PATH_NAME, ACCESS_TYPE FROM TABLE(
SYSTOOLS.AUDIT_JOURNAL_ZC(
STARTING_TIMESTAMP => CURRENT TIMESTAMP - 7 DAYS ))
WHERE ENTRY_TYPE = 'C' AND IFS_OBJECT_NAME LIKE 'data%'
ORDER BY PATH_NAME, IFS_OBJECT_NAME;
Bon à savoir
Toujours renseigner STARTING_TIMESTAMP : sans borne, la fonction parcourt les récepteurs à partir de la chaîne disponible et peut être longue. La lecture du journal d'audit demande le droit spécial *AUDIT.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
STARTING_RECEIVER_NAME |
VARCHAR(10) | '*CURAVLCHN' | Nom du récepteur de journal de départ |
ENDING_RECEIVER_NAME |
VARCHAR(10) | '*CURRENT' | Nom du récepteur de journal de fin |
STARTING_TIMESTAMP |
TIMESTAMP | NULL | Horodatage de début |
ENDING_TIMESTAMP |
TIMESTAMP | NULL | Horodatage de fin |
USER_NAME |
VARCHAR(10) | '*ALL' | Nom du profil utilisateur |
JOB |
VARCHAR(28) | '*ALL' | Nom qualifié du travail |
PROGRAM |
VARCHAR(10) | '*ALL' | Programme |
STARTING_SEQUENCE |
DECIMAL(21, 0) | NULL | Numéro de séquence de départ |
ENDING_SEQUENCE |
DECIMAL(21, 0) | NULL | Numéro de séquence de fin |
STARTING_RECEIVER_LIBRARY |
VARCHAR(10) | '*CURRENT' | Bibliothèque du récepteur de journal de départ |
ENDING_RECEIVER_LIBRARY |
VARCHAR(10) | '*CURRENT' | Bibliothèque du récepteur de journal de fin |
Colonnes renvoyées (45)
Afficher les 45 colonnes
| Colonne | Type | Signification |
|---|---|---|
ENTRY_TIMESTAMP |
TIMESTAMP | Horodatage de l'entrée |
SEQUENCE_NUMBER |
DECIMAL(21, 0) | Numéro de séquence |
USER_NAME |
VARCHAR(10) | Nom du profil utilisateur |
QUALIFIED_JOB_NAME |
VARCHAR(28) | Nom qualifié du travail |
JOB_NAME |
VARCHAR(10) | Nom du travail |
JOB_USER |
VARCHAR(10) | Profil utilisateur du travail |
JOB_NUMBER |
VARCHAR(6) | Numéro du travail |
THREAD |
BIGINT | Unité d'exécution (thread) |
PROGRAM_LIBRARY |
VARCHAR(10) | Bibliothèque du programme |
PROGRAM_NAME |
VARCHAR(10) | Nom du programme |
PROGRAM_LIBRARY_ASP_DEVICE |
VARCHAR(10) | Unité ASP de la bibliothèque du programme |
PROGRAM_LIBRARY_ASP_NUMBER |
INTEGER | Numéro de l'ASP de la bibliothèque du programme |
REMOTE_PORT |
INTEGER | Port distant |
REMOTE_ADDRESS |
VARCHAR(46) | Adresse distante |
SYSTEM_NAME |
VARCHAR(8) | Nom du système |
SYSTEM_SEQUENCE_NUMBER |
DECIMAL(21, 0) | Numéro de séquence système |
RECEIVER_LIBRARY |
VARCHAR(10) | Bibliothèque du récepteur de journal |
RECEIVER_NAME |
VARCHAR(10) | Nom du récepteur de journal |
RECEIVER_ASP_DEVICE |
VARCHAR(10) | Unité ASP du récepteur de journal |
RECEIVER_ASP_NUMBER |
INTEGER | Numéro d'ASP du récepteur de journal |
ARM_NUMBER |
INTEGER | Numéro ARM |
ENTRY_TYPE |
CHAR(1) | Type de l'entrée |
ENTRY_TYPE_DETAIL |
VARCHAR(200) | Détail du type de l'entrée |
ACCESS_TYPE |
INTEGER | Type d'accès |
ACCESS_TYPE_DETAIL |
VARCHAR(50) | Détail du type d'accès |
LIBRARY_NAME |
VARCHAR(10) | Nom de la bibliothèque |
OBJECT_NAME |
VARCHAR(10) | Nom de l'objet |
OBJECT_TYPE |
VARCHAR(7) | Type de l'objet |
MEMBER_NAME |
VARCHAR(10) | Nom du membre |
PREV_MEMBER_NAME |
VARCHAR(10) | Nom précédent du membre |
OBJECT_ASP_NAME |
VARCHAR(10) | Nom de l'ASP de l'objet |
OBJECT_ASP_NUMBER |
INTEGER | Numéro de l'ASP de l'objet |
IFS_ACCESS_TYPE |
VARCHAR(50) | Type d'accès à l'IFS |
IFS_ACCESS_TYPE_DETAIL |
VARCHAR(2000) | Détail du type d'accès à l'IFS |
PATH_NAME |
GRAPHIC VARYING | Chemin |
PATH_NAME_INDICATOR |
VARCHAR(3) | Indicateur du chemin |
RELATIVE_DIRECTORY_FILE_ID |
BINARY(16) | Identifiant de fichier du répertoire relatif |
IFS_OBJECT_NAME |
GRAPHIC VARYING | Nom de l'objet IFS |
OBJECT_FILE_ID |
BINARY(16) | Identifiant de fichier de l'objet |
PARENT_FILE_ID |
BINARY(16) | Identifiant du fichier parent |
IMGCLGE_ACCESS_TYPE |
VARCHAR(10) | Type d'accès de l'entrée du catalogue d'images |
IMGCLGE_INDEX_NUMBER |
INTEGER | Numéro d'index de l'entrée du catalogue d'images |
IMGCLGE_VOLUME_ID |
VARCHAR(32) | Identifiant de volume de l'entrée du catalogue d'images |
IMGCLGE_WRITE_PROTECTION |
VARCHAR(3) | Protection en écriture de l'entrée du catalogue d'images |
IMGCLGE_VIRTUAL_DEVICE |
VARCHAR(10) | Unité virtuelle de l'entrée du catalogue d'images |