Service SQL IBM i (AS/400) · Fonction table
SYSTOOLS.CHANGE_USER_PROFILE
Modifier des profils utilisateur en SQL
Modifie les attributs d'un profil utilisateur (statut, mot de passe, droits spéciaux, groupe) comme CHGUSRPRF, avec un mode aperçu pour tester sans agir.
À quoi ça sert
Cette fonction de table applique un CHGUSRPRF au profil désigné par P_USER_NAME. Chaque paramètre P_* correspond à un attribut du profil : mot de passe, expiration du mot de passe, statut (*ENABLED ou *DISABLED), programme initial, limitation des capacités, texte, description de travail, profil de groupe, date d'expiration du profil ou droit spécial. Toutes les valeurs par défaut valent *SAME : seul ce que l'on précise est modifié.
Elle renvoie une ligne par profil avec CHANGE_ATTEMPTED, CHANGE_SUCCESSFUL, la commande générée dans CHGUSRPRF_COMMAND et, en cas d'échec, l'identifiant et le texte du message. Le paramètre PREVIEW vaut YES par défaut : la commande est seulement construite, pas exécutée.
Associée à QSYS2.USER_INFO, elle permet de traiter un lot de profils d'après un critère, par exemple désactiver tous les profils sans mot de passe.
Résultat réel sur un IBM i 7.5
Pas de résultat publié : la fonction agit sur les profils utilisateurs, même en mode aperçu.
L'exemple d'IBM
Prévisualiser la liste des profils utilisateur activés qui n'ont pas de mot de passe et qui seraient désactivés.
-- Description: Preview the list of enabled user profiles that have no password set.
SELECT * FROM QSYS2.USER_INFO,
TABLE(SYSTOOLS.CHANGE_USER_PROFILE(
P_USER_NAME => AUTHORIZATION_NAME,
P_STATUS => '*DISABLED',
PREVIEW => 'YES'))
WHERE STATUS = '*ENABLED' AND
NO_PASSWORD_INDICATOR = 'YES';
Bon à savoir
Contrôler la colonne CHGUSRPRF_COMMAND en mode aperçu avant de passer PREVIEW à NO : un critère trop large pourrait désactiver des profils de service. Les droits nécessaires sont ceux de CHGUSRPRF (*SECADM).
Paramètres
| Paramètre | Type | Par défaut | Signification |
|---|---|---|---|
P_USER_NAME |
VARCHAR(10) | obligatoire | Nom du profil utilisateur |
P_PASSWORD |
VARCHAR(128) | '*SAME' | Mot de passe du profil utilisateur |
P_PASSWORD_EXPIRED |
VARCHAR(5) | '*SAME' | Mot de passe expiré |
P_STATUS |
VARCHAR(10) | '*SAME' | Statut du profil utilisateur |
P_INITIAL_PROGRAM |
VARCHAR(21) | '*SAME' | Programme initial du profil utilisateur |
P_LIMIT_CAPABILITIES |
VARCHAR(8) | '*SAME' | Limitation des capacités du profil utilisateur |
P_TEXT |
VARCHAR(50) | '*SAME' | Texte descriptif |
P_PASSWORD_EXPIRATION_INTERVAL |
VARCHAR(7) | '*SAME' | Intervalle d'expiration du mot de passe |
P_JOB_DESCRIPTION |
VARCHAR(21) | '*SAME' | Description de travail du profil utilisateur |
P_GROUP_PROFILE |
VARCHAR(10) | '*SAME' | Profil de groupe |
P_USER_EXPIRATION_DATE |
VARCHAR(10) | '*SAME' | Date d'expiration du profil utilisateur |
P_USER_EXPIRATION_INTERVAL |
SMALLINT | NULL | Intervalle d'expiration du profil utilisateur |
P_SPECIAL_AUTHORITY_ACTION |
VARCHAR(7) | '*SAME' | Action à appliquer au droit spécial |
P_SPECIAL_AUTHORITY |
VARCHAR(9) | NULL | Droit spécial |
PREVIEW |
VARCHAR(3) | 'YES' | Aperçu sans exécution |
Colonnes renvoyées (6)
Afficher les 6 colonnes
| Colonne | Type | Signification |
|---|---|---|
USER_NAME |
VARCHAR(10) | Nom du profil utilisateur |
CHANGE_ATTEMPTED |
VARCHAR(3) | Modification tentée |
CHANGE_SUCCESSFUL |
VARCHAR(3) | Modification réussie |
CHGUSRPRF_COMMAND |
VARCHAR(1000) | Commande CHGUSRPRF |
FAILURE_MESSAGE_ID |
CHAR(7) | Identifiant du message d'échec |
FAILURE_MESSAGE_TEXT |
GRAPHIC VARYING | Texte du message d'échec |