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è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 (38)
Afficher les 38 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 |
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é |