accessControl commitTransaction

Gestion d'Erreur Procédurale et Comparaison Rollback/Commit

Scénario de test & Cas d'usage

Contexte Métier

Un administrateur teste une nouvelle politique de sécurité. Il fait une erreur, l'annule (Rollback), puis tente de valider une transaction sans l'avoir démarrée (Test Cas Limite), et enfin applique la bonne politique (Commit).
À propos du Set : accessControl

Gestion des droits d'accès et de la sécurité des données.

Découvrir toutes les actions de accessControl
Préparation des Données

Création d'une table de logs pour les tests d'accès.

Copié !
1 
2PROC CAS;
3caslib Admin_Data path='/tmp/admin' dataSource={srcType='path'};
4loadTable / caslib='casuser' path='cars.sashdat' casOut={caslib='Admin_Data', name='server_logs', promote=true};
5 
6RUN;
7 
8QUIT;
9 

Étapes de réalisation

1
Simulation erreur : Modification erronée suivie d'un Rollback.
Copié !
1 
2PROC CAS;
3ACCESSCONTROL.assumeRole / adminRole='superuser';
4 
5RUN;
6ACCESSCONTROL.startTransaction;
7ACCESSCONTROL.updSomeAcsTable / caslib='Admin_Data' TABLE='server_logs' principal='Public' perm='Delete' grant='grant';
8ACCESSCONTROL.rollbackTransaction;
9 
10RUN;
11 
12QUIT;
13 
2
Cas Limite : Tentative de Commit sans transaction active (doit échouer ou être ignoré), puis Commit valide.
Copié !
1 
2PROC CAS;
3ACCESSCONTROL.commitTransaction;
4/* Test sans Start */
5RUN;
6ACCESSCONTROL.startTransaction;
7ACCESSCONTROL.updSomeAcsTable / caslib='Admin_Data' TABLE='server_logs' principal='IT_Support' perm='ReadInfo' grant='grant';
8ACCESSCONTROL.commitTransaction;
9 
10RUN;
11 
12QUIT;
13 

Résultat Attendu


La permission 'Delete' pour Public n'est JAMAIS appliquée (grâce au Rollback). Le Commit isolé génère un avertissement ou est ignoré. Seule la permission 'ReadInfo' pour IT_Support est finalement validée.