Aller au contenu

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

SYSTOOLS.AUDIT_JOURNAL_PS

Journal d'audit : échanges de profil et jetons (PS)

Lit les entrées PS du journal d'audit : changements de profil utilisateur, jetons de profil générés, avec l'adresse IP, le port et l'unité d'origine.

À quoi ça sert

Cette fonction de table lit les entrées de type PS du journal d'audit, relatives aux échanges de profil utilisateur et à la génération de jetons de profil. On y lit le profil (USER_PROFILE_NAME), le type et la durée de validité du jeton (PROFILE_TOKEN_TYPE, PROFILE_TOKEN_TIMEOUT), la provenance de la demande (adresse IP, port, unité) et divers profils de transit.

Elle est utile pour la sécurité : un jeton de profil permet de prendre l'identité d'un utilisateur sans mot de passe. On vérifie ainsi qui en a généré pour un profil sensible. L'exemple d'IBM cherche les jetons à usage unique générés pour QSECOFR durant la semaine.

Les paramètres de sélection sont facultatifs, communs à toutes les fonctions d'audit.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT ENTRY_TIMESTAMP, USER_NAME, QUALIFIED_JOB_NAME, PROFILE_TOKEN_TYPE, USER_PROFILE_NAME FROM TABLE(SYSTOOLS.AUDIT_JOURNAL_PS(STARTING_TIMESTAMP => CURRENT DATE - 90 DAYS)) X

Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :

ENTRY_TIMESTAMP Horodatage de l'entrée USER_NAME Nom du profil utilisateur QUALIFIED_JOB_NAME Nom qualifié du travail PROFILE_TOKEN_TYPE Type de jeton de profil USER_PROFILE_NAME Nom du profil utilisateur
2026-09-28 17:14:46.406192 QUSER 966253/QUSER/QZDASOINIT NULL QUSER
2026-09-28 17:14:46.960432 QUSER 966246/QUSER/QZSOSIGN NULL UTIL232
2026-09-28 17:14:46.962224 QUSER 966246/QUSER/QZSOSIGN NULL QUSER
2026-09-28 17:14:46.962624 QUSER 966253/QUSER/QZDASOINIT NULL UTIL232
2026-09-28 17:14:47.391072 QUSER 966253/QUSER/QZDASOINIT NULL QUSER

Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés. Les objets du schéma JOBISQL sont des objets de démonstration créés pour ce site.

L'exemple d'IBM

Lister les occurrences où un jeton de profil à usage unique a été généré pour un profil précis durant la dernière semaine.

-- Description: List the occurrences where a single user profile token was generated 
     -- for the user QSYS in the last week. 
 SELECT * FROM TABLE( 
  SYSTOOLS.AUDIT_JOURNAL_PS(   
      STARTING_TIMESTAMP => CURRENT TIMESTAMP - 7 DAYS) ) 
  WHERE PROFILE_TOKEN_TYPE = 'SINGLE USE' AND USER_PROFILE_NAME = 'QSECOFR';

Bon à savoir

Attention : le commentaire de l'exemple d'IBM cite QSYS alors que son filtre vise QSECOFR. Fiez-vous au filtre de la requête et adaptez-le à votre cas.

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 (38)

Afficher les 38 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
USER_PROFILE_NAME VARCHAR(10) Nom du profil utilisateur
PROFILE_TOKEN_TYPE VARCHAR(12) Type de jeton de profil
PROFILE_TOKEN_TIMEOUT INTEGER Délai d'expiration du jeton de profil
SOURCE_LOCATION VARCHAR(8) Emplacement source
PASS_THROUGH_USER_PROFILE_NAME VARCHAR(10) Profil utilisateur du passage (pass-through)
ORIGINAL_PASS_THROUGH_USER_PROFILE_NAME VARCHAR(10) Profil utilisateur d'origine du passage (pass-through)
EXIT_PROGRAM_USER_PROFILE_NAME VARCHAR(10) Profil utilisateur du programme de sortie
NEGOTIATED_USER_PROFILE_NAME VARCHAR(10) Profil utilisateur négocié
PORT_NUMBER INTEGER Numéro de port
IP_ADDRESS VARCHAR(45) Adresse IP
DEVICE_NAME VARCHAR(10) Nom de l'unité
EXIT_POINT_NAME VARCHAR(30) Nom du point de sortie
EXIT_POINT_FORMAT VARCHAR(8) Format du point de sortie
OFFICE_USER VARCHAR(10) Utilisateur Bureautique
OFFICE_ON_BEHALF_OF_USER VARCHAR(10) Utilisateur Bureautique représenté