Service SQL IBM i (AS/400) · Fonction scalaire
SYSTOOLS.IFS_ACCESS
Tester les droits sur un objet IFS
Indique si le profil qui l'exécute a le droit de lire, d'écrire ou d'exécuter un fichier ou un répertoire de l'IFS.
À quoi ça sert
Cette fonction scalaire teste l'accès au chemin PATH_NAME pour le profil qui l'appelle. Les paramètres READ, WRITE et EXECUTE valent NO par défaut : on passe YES pour chaque droit à vérifier.
Elle sert à contrôler en SQL qu'un fichier est lisible ou qu'un répertoire est modifiable avant de le traiter, et à éviter une erreur d'autorisation en plein milieu d'un script. Pour connaître les droits de tous les profils sur un objet, il faut plutôt utiliser QSYS2.IFS_OBJECT_PRIVILEGES.
Résultat réel sur un IBM i 7.5
Ce que nous avons exécuté :
VALUES SYSTOOLS.IFS_ACCESS(PATH_NAME => '/usr/reportdata.txt',
READ => 'YES')
Ce que l'IBM i a renvoyé le 01/10/2026 (1 ligne au plus) :
| 00001 |
|---|
| 3025 |
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
Déterminer si l'appelant a le droit de lire le fichier /usr/reportdata.txt.
-- Description: Determine whether the invoker of the function has read access to
-- /usr/reportdata.txt.
VALUES SYSTOOLS.IFS_ACCESS(PATH_NAME => '/usr/reportdata.txt',
READ => 'YES');
Bon à savoir
Le test porte sur le profil courant, pas sur un profil au choix : un résultat positif en session interactive ne vaut pas forcément pour un travail batch sous un autre profil.
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
PATH_NAME |
VARCHAR(5000) | obligatoire | Chemin |
READ |
VARCHAR(3) | 'NO' | Accès en lecture |
WRITE |
VARCHAR(3) | 'NO' | Accès en écriture |
EXECUTE |
VARCHAR(3) | 'NO' | Droit d'exécution |