Aller au contenu

Service SQL IBM i (AS/400) · Fonction table

SYSTOOLS.AUDIT_JOURNAL_ZR

Audit des objets lus (ZR)

Lit dans le journal d'audit les entrées ZR : lectures d'objets, de fichiers ou d'éléments de l'IFS, avec le profil, le travail et le programme à l'origine.

À quoi ça sert

Cette fonction de table extrait les entrées de type ZR du journal d'audit (QAUDJRN), qui enregistrent les accès en lecture à un objet. Chaque ligne donne l'horodatage, le profil USER_NAME, le travail, le programme, l'adresse distante éventuelle et l'objet lu (LIBRARY_NAME, OBJECT_NAME, OBJECT_TYPE ou PATH_NAME dans l'IFS).

On l'emploie pour savoir qui consulte des données sensibles (paie, clients) ou quels objets sont réellement lus. Les entrées ne sont produites que si l'audit en lecture est activé sur les objets ou les utilisateurs concernés, ce qui peut générer un gros volume.

Les paramètres permettent de borner la période (STARTING_TIMESTAMP, ENDING_TIMESTAMP) ou la plage de récepteurs et de séquences, et de filtrer par USER_NAME, JOB ou PROGRAM. Le SQL apporte les regroupements et comptages que DSPJRN ne fait pas.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT COUNT(*), LIBRARY_NAME, OBJECT_NAME, OBJECT_TYPE FROM TABLE( 
    SYSTOOLS.AUDIT_JOURNAL_ZR( 
      STARTING_TIMESTAMP => CURRENT TIMESTAMP - 2 DAYS )) 
  WHERE LIBRARY_NAME = 'APPLIB' 
  GROUP BY LIBRARY_NAME, OBJECT_NAME, OBJECT_TYPE

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 la bibliothèque APPLIB qui ont été lus au cours des 2 derniers jours.

-- Description: List objects in APPLIB that were read in the last 2 days.  
 SELECT COUNT(*), LIBRARY_NAME, OBJECT_NAME, OBJECT_TYPE FROM TABLE( 
    SYSTOOLS.AUDIT_JOURNAL_ZR( 
      STARTING_TIMESTAMP => CURRENT TIMESTAMP - 2 DAYS )) 
  WHERE LIBRARY_NAME = 'APPLIB' 
  GROUP BY LIBRARY_NAME, OBJECT_NAME, OBJECT_TYPE;

Bon à savoir

L'audit en lecture est coûteux en volume : borner systématiquement la période. Le droit spécial *AUDIT est nécessaire pour lire le journal d'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 (42)

Afficher les 42 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
OBJECT_ASP_NAME VARCHAR(10) Nom de l'ASP de l'objet
OBJECT_ASP_NUMBER INTEGER Numéro de l'ASP de l'objet
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