Service SQL IBM i (AS/400) · Fonction table
SYSTOOLS.AUDIT_JOURNAL_AX
Journal d'audit : contrôle d'accès lignes et colonnes (AX)
Lit les entrées AX du journal d'audit : activation ou désactivation du contrôle d'accès par ligne ou par colonne (RCAC), masques et permissions.
À quoi ça sert
Cette fonction de table lit les entrées de type AX du journal d'audit, écrites pour le contrôle d'accès aux lignes et aux colonnes (RCAC). On y trouve les créations et modifications de permissions et de masques de colonne, ainsi que l'activation ou la désactivation du contrôle par ALTER TABLE.
Les colonnes ROW_ACCESS_CONTROL et COLUMN_ACCESS_CONTROL, avec leurs équivalents PREV_*, donnent l'état après et avant l'opération. SQL_STATEMENT_TEXT contient l'instruction SQL exécutée, et STATEMENT_TRUNCATED indique si elle a été tronquée.
C'est un contrôle important pour une conformité de type séparation des tâches : on vérifie que personne n'a désactivé une protection de données sensibles sans trace.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
SELECT LIBRARY_NAME, FILE_NAME, ROW_ACCESS_CONTROL, COLUMN_ACCESS_CONTROL,
PREV_ROW_ACCESS_CONTROL, PREV_COLUMN_ACCESS_CONTROL FROM TABLE(
SYSTOOLS.AUDIT_JOURNAL_AX(
STARTING_TIMESTAMP => CURRENT DATE - 7 DAYS ))
WHERE ENTRY_TYPE = 'T'
Ce que l'IBM i a renvoyé le 01/10/2026 (2 lignes au plus) :
| LIBRARY_NAME Nom de la bibliothèque | FILE_NAME Nom du fichier | ROW_ACCESS_CONTROL Contrôle d'accès aux lignes | COLUMN_ACCESS_CONTROL Contrôle d'accès aux colonnes | PREV_ROW_ACCESS_CONTROL Valeur précédente du contrôle d'accès aux lignes | PREV_COLUMN_ACCESS_CONTROL Valeur précédente du contrôle d'accès aux colonnes |
|---|---|---|---|---|---|
| BIBAPP278 | PETIT1 | ACTIVATE | DEACTIVATE | DEACTIVATE | DEACTIVATE |
| BIBAPP278 | USER_TEST | DEACTIVATE | ACTIVATE | DEACTIVATE | DEACTIVATE |
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 changements d'activation du contrôle d'accès par ligne ou par colonne durant la dernière semaine, faits par un ALTER TABLE avec l'option ACTIVATE ou DEACTIVATE.
-- Description: List any changes to active row or column access control for the
-- last week. These are operations performed by an ALTER TABLE statement with
-- an ACTIVATE or DEACTIVATE option.
SELECT LIBRARY_NAME, FILE_NAME, ROW_ACCESS_CONTROL, COLUMN_ACCESS_CONTROL,
PREV_ROW_ACCESS_CONTROL, PREV_COLUMN_ACCESS_CONTROL FROM TABLE(
SYSTOOLS.AUDIT_JOURNAL_AX(
STARTING_TIMESTAMP => CURRENT DATE - 7 DAYS ))
WHERE ENTRY_TYPE = 'T';
Bon à savoir
La colonne SQL_STATEMENT_TEXT garde l'instruction d'origine : utile pour rejouer ou contester un changement.
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 (39)
Afficher les 39 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 |
OPERATION_TYPE |
VARCHAR(8) | Type de l'opération |
LIBRARY_NAME |
VARCHAR(10) | Nom de la bibliothèque |
FILE_NAME |
VARCHAR(10) | Nom du fichier |
MASK_NAME |
VARCHAR(128) | Nom du masque |
COLUMN_NAME |
VARCHAR(10) | Nom de la colonne |
PERMISSION_NAME |
VARCHAR(128) | Nom de la permission |
ENABLED |
VARCHAR(3) | Activé |
ROW_ACCESS_CONTROL |
VARCHAR(10) | Contrôle d'accès aux lignes |
COLUMN_ACCESS_CONTROL |
VARCHAR(10) | Contrôle d'accès aux colonnes |
PREV_ENABLED |
VARCHAR(3) | Valeur précédente de l'activation |
PREV_ROW_ACCESS_CONTROL |
VARCHAR(10) | Valeur précédente du contrôle d'accès aux lignes |
PREV_COLUMN_ACCESS_CONTROL |
VARCHAR(10) | Valeur précédente du contrôle d'accès aux colonnes |
SQL_STATEMENT_TEXT |
GRAPHIC VARYING | Texte de l'instruction SQL |
STATEMENT_TRUNCATED |
VARCHAR(3) | Instruction tronquée |
ASP_NAME |
VARCHAR(10) | Nom de l'ASP |
ASP_NUMBER |
INTEGER | Numéro de l'ASP |