Recette SQL IBM i (AS/400) · Sécurité
Les profils qui ont le droit spécial *ALLOBJ
Les profils utilisateurs qui ont le droit spécial *ALLOBJ, accès à tout le système : la liste à garder la plus courte possible.
Le besoin
*ALLOBJ donne accès à tous les objets, quels que soient leurs droits. Un profil de programmeur ou d'utilisateur qui l'a hérité par erreur est un risque majeur.
La requête
SELECT AUTHORIZATION_NAME, STATUS, USER_CLASS_NAME, SPECIAL_AUTHORITIES, GROUP_PROFILE_NAME
FROM QSYS2.USER_INFO
WHERE SPECIAL_AUTHORITIES LIKE '%*ALLOBJ%'
AND AUTHORIZATION_NAME NOT LIKE 'Q%'
ORDER BY STATUS, AUTHORIZATION_NAME
FETCH FIRST 10 ROWS ONLY
SPECIAL_AUTHORITIES liste les droits spéciaux du profil dans une chaîne ; le LIKE '%*ALLOBJ%' les trouve. Attention : un droit spécial peut aussi venir du profil de groupe, d'où la colonne GROUP_PROFILE_NAME.
Le résultat sur un IBM i 7.5
Ce que l'IBM i a renvoyé le 01/10/2026 (5 lignes au plus) :
| AUTHORIZATION_NAME Profil utilisateur | STATUS Statut | USER_CLASS_NAME Classe d'utilisateur | SPECIAL_AUTHORITIES Droits spéciaux | GROUP_PROFILE_NAME Nom du profil de groupe |
|---|---|---|---|---|
| GAUTHIER | *DISABLED | *SECOFR | *ALLOBJ *SECADM *JOBCTL *SPLCTL *SAVSYS *IOSYSCFG | *NONE |
| DUMAS | *DISABLED | *PGMR | *ALLOBJ | *NONE |
| LACROIX | *DISABLED | *USER | *ALLOBJ | *NONE |
| UTIL115 | *DISABLED | *PGMR | *ALLOBJ *JOBCTL *SAVSYS *IOSYSCFG | *NONE |
| UTIL119 | *DISABLED | *USER | *ALLOBJ | *NONE |
Les profils que nous trouvons sont désactivés : c'est la bonne pratique quand un compte à privilèges n'est plus utilisé.
Données anonymisées : les noms de système, de profils, de bibliothèques, de postes et les adresses IP ont été remplacés.
L'adapter à votre système
Remplacez *ALLOBJ par *SECADM, *AUDIT ou *SERVICE pour les autres droits sensibles. QSYS2.SQL_CHECK_SPECIAL_AUTHORITY vérifie un droit, groupe compris.