Scénario de test & Cas d'usage
Gestion des droits d'accès et de la sécurité des données.
Découvrir toutes les actions de accessControlCréation d'une table de logs pour les tests d'accès.
| 1 | |
| 2 | PROC CAS; |
| 3 | caslib Admin_Data path='/tmp/admin' dataSource={srcType='path'}; |
| 4 | loadTable / caslib='casuser' path='cars.sashdat' casOut={caslib='Admin_Data', name='server_logs', promote=true}; |
| 5 | |
| 6 | RUN; |
| 7 | |
| 8 | QUIT; |
| 9 |
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.assumeRole / adminRole='superuser'; |
| 4 | |
| 5 | RUN; |
| 6 | ACCESSCONTROL.startTransaction; |
| 7 | ACCESSCONTROL.updSomeAcsTable / caslib='Admin_Data' TABLE='server_logs' principal='Public' perm='Delete' grant='grant'; |
| 8 | ACCESSCONTROL.rollbackTransaction; |
| 9 | |
| 10 | RUN; |
| 11 | |
| 12 | QUIT; |
| 13 |
| 1 | |
| 2 | PROC CAS; |
| 3 | ACCESSCONTROL.commitTransaction; |
| 4 | /* Test sans Start */ |
| 5 | RUN; |
| 6 | ACCESSCONTROL.startTransaction; |
| 7 | ACCESSCONTROL.updSomeAcsTable / caslib='Admin_Data' TABLE='server_logs' principal='IT_Support' perm='ReadInfo' grant='grant'; |
| 8 | ACCESSCONTROL.commitTransaction; |
| 9 | |
| 10 | RUN; |
| 11 | |
| 12 | QUIT; |
| 13 |
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.