Aller au contenu

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ètreTypePar défautSignification
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
ColonneTypeSignification
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