Liste complète des droits sur un objet
Il peut être intéressant de voir les droits qui existent sur un objet, pour comprendre et administrer la sécurité.
Les droits sur un objet sont visibles par la commande DSPOBJAUT, mais également par DSPAUTL si votre objet est protégé par une liste.
Prérequis, vous devez avoir au moins le droit *USE sur la bibliothèque qui contient l’objet.
Cette requête résume l’ensemble de ces droits présents
--
-- Voir les droits sur un objet
-- sur l'objet et sur la liste s'il y en a une
-- indiquez votre objet et votre lib
--
SELECT '2) LISTE' as nature,
'QSYS' as Library ,
AUTHORIZATION_LIST,
'*AUTL' as TYPE,
AUTHORIZATION_NAME ,
OBJECT_OPERATIONAL,
OBJECT_MANAGEMENT,
OBJECT_EXISTENCE,
OBJECT_ALTER,
OBJECT_REFERENCE,
DATA_READ,
DATA_ADD,
DATA_UPDATE,
DATA_DELETE,
DATA_EXECUTE
FROM QSYS2.AUTHORIZATION_LIST_USER_INFO
WHERE AUTHORIZATION_LIST = (SELECT AUTHORIZATION_LIST
FROM QSYS2.OBJECT_PRIVILEGES
WHERE object_schema = 'VOTRE_BIB'
AND object_name = 'VOTRE_OBJ'
FETCH FIRST ROW ONLY)
UNION
SELECT '1) OBJECT' as NATURE,
OBJECT_SCHEMA as library,
OBJECT_NAME as OBJECT,
OBJECT_TYPE as TYPE,
AUTHORIZATION_NAME,
OBJECT_OPERATIONAL,
OBJECT_MANAGEMENT,
OBJECT_EXISTENCE,
OBJECT_ALTER,
OBJECT_REFERENCE,
DATA_READ,
DATA_ADD,
DATA_UPDATE,
DATA_DELETE,
DATA_EXECUTE
FROM QSYS2.OBJECT_PRIVILEGES
WHERE object_schema = 'VOTRE_BIB'
AND object_name = 'VOTRE_OBJ'
ORDER BY 1;
Rappel :
Ces droits ne sont vérifiés que si votre profil et votre profil de groupe ne sont pas *ALLOBJ
Les droits qui sont systématiquement présents sur les objets, sont les droits *PUBLIC et le propriétaire