Aller au contenu

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

QSYS2.IFS_OBJECT_PRIVILEGES

Droits sur les objets de l'IFS

Liste les droits accordés sur un objet de l'IFS : propriétaire, groupe principal, liste d'autorisation et droits de chaque profil.

À quoi ça sert

La fonction de table prend un chemin (PATH_NAME) et renvoie les droits de l'objet : type, propriétaire, groupe principal, liste d'autorisation, puis une ligne par profil (AUTHORIZATION_NAME) avec ses droits sur les données (DATA_AUTHORITY) et le détail : droits sur l'objet (opération, gestion, existence, modification, référence) et sur les données (lecture, ajout, mise à jour, suppression, exécution).

Elle sert à l'audit : vérifier qui peut lire ou modifier un répertoire sensible, repérer les accès trop larges accordés à *PUBLIC. Comme elle prend un seul chemin, on l'appelle en jointure avec IFS_OBJECT_STATISTICS pour parcourir tout un arbre, comme dans l'exemple d'IBM sur /usr.

Le paramètre IGNORE_ERRORS (défaut YES) évite qu'un objet inaccessible n'interrompe la requête.

Résultat réel sur un IBM i 7.5

Ce que nous avons exécuté :

SELECT * FROM TABLE(QSYS2.IFS_OBJECT_PRIVILEGES('/tmp/jobisql/bonjour.txt'))

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

PATH_NAME Chemin OBJECT_TYPE Type de l'objet OWNER Propriétaire PRIMARY_GROUP Groupe principal AUTHORIZATION_LIST Liste d'autorisation AUTHORIZATION_NAME Profil utilisateur DATA_AUTHORITY Droits sur les données OBJECT_OPERATIONAL Droit d'exploitation de l'objet (*OBJOPR) OBJECT_MANAGEMENT Droit de gestion de l'objet (*OBJMGT) OBJECT_EXISTENCE Droit d'existence sur l'objet (*OBJEXIST) OBJECT_ALTER Droit de modification de l'objet (*OBJALTER) OBJECT_REFERENCE Droit de référence sur l'objet (*OBJREF) DATA_READ Droit de lecture des données DATA_ADD Droit d'ajout de données DATA_UPDATE Droit de mise à jour des données DATA_DELETE Droit de suppression de données DATA_EXECUTE Droit d'exécution sur les données
/tmp/jobisql/bonjour.txt *STMF UTIL232 NULL NULL *PUBLIC *RWX YES YES YES YES YES YES YES YES YES YES
/tmp/jobisql/bonjour.txt *STMF UTIL232 NULL NULL UTIL232 *RWX YES YES YES YES YES YES YES YES YES YES
/tmp/jobisql/bonjour.txt *STMF UTIL232 NULL NULL UTIL187 *RWX YES NO NO NO NO YES YES YES YES YES
/tmp/jobisql/bonjour.txt *STMF UTIL232 NULL NULL QDIRSRV *RWX YES YES YES YES YES YES YES YES YES YES
/tmp/jobisql/bonjour.txt *STMF UTIL232 NULL NULL DUPONT *RWX YES YES YES YES YES YES YES YES YES YES

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 tous les droits sur les objets du répertoire /usr.

-- Description: List all the authorities for objects in /usr 
   WITH OBJS AS (SELECT PATH_NAME 
       FROM TABLE (QSYS2.IFS_OBJECT_STATISTICS(START_PATH_NAME => '/usr'))) 
   SELECT * FROM OBJS, TABLE(QSYS2.IFS_OBJECT_PRIVILEGES(PATH_NAME));

Bon à savoir

Sur un grand arbre, la jointure avec IFS_OBJECT_STATISTICS parcourt chaque objet un par un et peut être longue. Limite le répertoire de départ et filtre les types d'objets.

Paramètres

ParamètreTypePar défautSignification
PATH_NAME DOUBLE-BYTE CHAR LARGE OBJECT obligatoire Chemin
IGNORE_ERRORS VARCHAR(3) 'YES' Ignorer les erreurs

Colonnes renvoyées (17)

Afficher les 17 colonnes
ColonneTypeSignification
PATH_NAME DOUBLE-BYTE CHAR LARGE OBJECT Chemin
OBJECT_TYPE VARCHAR(8) Type de l'objet
OWNER VARCHAR(10) Propriétaire
PRIMARY_GROUP VARCHAR(10) Groupe principal
AUTHORIZATION_LIST VARCHAR(10) Liste d'autorisation
AUTHORIZATION_NAME VARCHAR(10) Profil utilisateur
DATA_AUTHORITY VARCHAR(12) Droits sur les données
OBJECT_OPERATIONAL VARCHAR(3) Droit d'exploitation de l'objet (*OBJOPR)
OBJECT_MANAGEMENT VARCHAR(3) Droit de gestion de l'objet (*OBJMGT)
OBJECT_EXISTENCE VARCHAR(3) Droit d'existence sur l'objet (*OBJEXIST)
OBJECT_ALTER VARCHAR(3) Droit de modification de l'objet (*OBJALTER)
OBJECT_REFERENCE VARCHAR(3) Droit de référence sur l'objet (*OBJREF)
DATA_READ VARCHAR(3) Droit de lecture des données
DATA_ADD VARCHAR(3) Droit d'ajout de données
DATA_UPDATE VARCHAR(3) Droit de mise à jour des données
DATA_DELETE VARCHAR(3) Droit de suppression de données
DATA_EXECUTE VARCHAR(3) Droit d'exécution sur les données