| 1 | /* Établir une session CAS si ce n'est pas déjà fait */ |
| 2 | cas casauto; |
| 3 | |
| 4 | /* Définir une caslib globale si elle n'existe pas */ |
| 5 | /* Remplacez 'myGlobalCaslib' par le nom de votre caslib et le chemin si nécessaire */ |
| 6 | PROC CASUTIL; |
| 7 | addcaslib caslib='myGlobalCaslib' path='/cas/data/myGlobalCaslib' sessref=casauto; |
| 8 | QUIT; |
| 9 | |
| 10 | /* Octroyer les permissions ReadInfo et Select au groupe 'groupA' sur 'myGlobalCaslib' */ |
| 11 | ACCESSCONTROL.updSomeAcsCaslib / |
| 12 | acs={ |
| 13 | {caslib="myGlobalCaslib", |
| 14 | identity="groupA", |
| 15 | identityType="Group", |
| 16 | permType="Grant", |
| 17 | permission="ReadInfo"}, |
| 18 | {caslib="myGlobalCaslib", |
| 19 | identity="groupA", |
| 20 | identityType="Group", |
| 21 | permType="Grant", |
| 22 | permission="Select"} |
| 23 | }; |
| 24 | RUN; |
| 25 | |
| 26 | /* Vérifier les contrôles d'accès de la caslib */ |
| 27 | ACCESSCONTROL.viewCaslibAcs / caslib="myGlobalCaslib"; |
| 28 | RUN; |
| 1 | /* Établir une session CAS si ce n'est pas déjà fait */ |
| 2 | cas casauto; |
| 3 | |
| 4 | /* Supposons que 'existingCaslib' existe */ |
| 5 | /* Octroyer la permission Write à l'utilisateur 'userB' sur 'existingCaslib' */ |
| 6 | ACCESSCONTROL.updSomeAcsCaslib / |
| 7 | acs={ |
| 8 | {caslib="existingCaslib", |
| 9 | identity="userB", |
| 10 | identityType="User", |
| 11 | permType="Grant", |
| 12 | permission="Write"} |
| 13 | }; |
| 14 | RUN; |
| 15 | |
| 16 | /* Vérifier les contrôles d'accès de la caslib 'existingCaslib' */ |
| 17 | ACCESSCONTROL.viewCaslibAcs / caslib="existingCaslib"; |
| 18 | RUN; |
| 1 | /* Établir une session CAS si ce n'est pas déjà fait */ |
| 2 | cas casauto; |
| 3 | |
| 4 | /* Révoquer toutes les permissions du groupe 'groupA' sur 'myGlobalCaslib' */ |
| 5 | ACCESSCONTROL.updSomeAcsCaslib / |
| 6 | acs={ |
| 7 | {caslib="myGlobalCaslib", |
| 8 | identity="groupA", |
| 9 | identityType="Group", |
| 10 | permType="Revoke", |
| 11 | permission="ReadInfo"}, |
| 12 | {caslib="myGlobalCaslib", |
| 13 | identity="groupA", |
| 14 | identityType="Group", |
| 15 | permType="Revoke", |
| 16 | permission="Select"}, |
| 17 | {caslib="myGlobalCaslib", |
| 18 | identity="groupA", |
| 19 | identityType="Group", |
| 20 | permType="Revoke", |
| 21 | permission="Write"}, |
| 22 | {caslib="myGlobalCaslib", |
| 23 | identity="groupA", |
| 24 | identityType="Group", |
| 25 | permType="Revoke", |
| 26 | permission="Delete"} |
| 27 | }; |
| 28 | RUN; |
| 29 | |
| 30 | /* Vérifier que le groupe 'groupA' n'a plus de permissions explicites sur 'myGlobalCaslib' */ |
| 31 | ACCESSCONTROL.viewCaslibAcs / caslib="myGlobalCaslib"; |
| 32 | RUN; |
| 1 | /* Établir une session CAS si ce n'est pas déjà fait */ |
| 2 | cas casauto; |
| 3 | |
| 4 | /* Créer une caslib temporaire 'tempCaslib' pour la session actuelle */ |
| 5 | SESSION.addCaslib / caslib='tempCaslib' active=true; |
| 6 | RUN; |
| 7 | |
| 8 | /* Définir des permissions par défaut sur 'tempCaslib' : octroyer ReadInfo/Select à 'public' */ |
| 9 | ACCESSCONTROL.updSomeAcsCaslib / |
| 10 | acs={ |
| 11 | {caslib="tempCaslib", |
| 12 | identity="public", |
| 13 | identityType="Group", |
| 14 | permType="Grant", |
| 15 | permission="ReadInfo"}, |
| 16 | {caslib="tempCaslib", |
| 17 | identity="public", |
| 18 | identityType="Group", |
| 19 | permType="Grant", |
| 20 | permission="Select"} |
| 21 | }; |
| 22 | RUN; |
| 23 | |
| 24 | /* Vérifier les contrôles d'accès de la caslib temporaire */ |
| 25 | ACCESSCONTROL.viewCaslibAcs / caslib="tempCaslib"; |
| 26 | RUN; |
| 27 | |
| 28 | /* Nettoyage : retirer la caslib temporaire à la fin de la session */ |
| 29 | SESSION.dropCaslib / caslib='tempCaslib'; |
| 30 | RUN; |