Publié le :
Administration CREATION_INTERNE

Rendre une nouvelle bibliothèque CAS globale disponible

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
Ce script CASL illustre comment utiliser l'action 'updSomeAcsCaslib' du jeu d'actions 'accessControl' pour définir des contrôles d'accès sur une caslib globale. L'objectif est de permettre à un groupe d'utilisateurs ('groupA' dans cet exemple) de lire les informations et de sélectionner les données dans une caslib nommée 'caslibA'. Il est crucial d'accorder à la fois 'ReadInfo' (lecture des métadonnées) et 'Select' (lecture des données) pour un accès complet en lecture. Ce mécanisme est essentiel pour gérer les permissions et la sécurité des données dans l'environnement SAS© Cloud Analytic Services (CAS).
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des noms de caslibs et de groupes/utilisateurs fictifs ou existants par défaut dans l'environnement Viya. Aucune donnée externe n'est requise car la manipulation porte sur les métadonnées de sécurité.

1 Bloc de code
accessControl.updSomeAcsCaslib
Explication :
Cet exemple de base montre comment rendre une caslib globale (ici 'myGlobalCaslib') disponible pour un groupe ('groupA') avec des permissions de lecture ('ReadInfo' et 'Select'). Il inclut la création d'une caslib fictive et la vérification des permissions après l'octroi.
Copié !
1/* Établir une session CAS si ce n'est pas déjà fait */
2cas 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 */
6PROC CASUTIL;
7 addcaslib caslib='myGlobalCaslib' path='/cas/data/myGlobalCaslib' sessref=casauto;
8QUIT;
9 
10/* Octroyer les permissions ReadInfo et Select au groupe 'groupA' sur 'myGlobalCaslib' */
11ACCESSCONTROL.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 };
24RUN;
25 
26/* Vérifier les contrôles d'accès de la caslib */
27ACCESSCONTROL.viewCaslibAcs / caslib="myGlobalCaslib";
28RUN;
2 Bloc de code
accessControl.updSomeAcsCaslib
Explication :
Cet exemple intermédiaire octroie la permission 'Write' (écriture) à un utilisateur spécifique ('userB') sur une caslib existante ('existingCaslib'). La vérification des permissions permet de confirmer l'application des changements.
Copié !
1/* Établir une session CAS si ce n'est pas déjà fait */
2cas casauto;
3 
4/* Supposons que 'existingCaslib' existe */
5/* Octroyer la permission Write à l'utilisateur 'userB' sur 'existingCaslib' */
6ACCESSCONTROL.updSomeAcsCaslib /
7 acs={
8 {caslib="existingCaslib",
9 identity="userB",
10 identityType="User",
11 permType="Grant",
12 permission="Write"}
13 };
14RUN;
15 
16/* Vérifier les contrôles d'accès de la caslib 'existingCaslib' */
17ACCESSCONTROL.viewCaslibAcs / caslib="existingCaslib";
18RUN;
3 Bloc de code
accessControl.updSomeAcsCaslib
Explication :
Cet exemple avancé montre comment révoquer explicitement plusieurs permissions (ReadInfo, Select, Write, Delete) d'un groupe ('groupA') sur une caslib ('myGlobalCaslib'). Cela est utile pour retirer des accès précédemment accordés.
Copié !
1/* Établir une session CAS si ce n'est pas déjà fait */
2cas casauto;
3 
4/* Révoquer toutes les permissions du groupe 'groupA' sur 'myGlobalCaslib' */
5ACCESSCONTROL.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 };
28RUN;
29 
30/* Vérifier que le groupe 'groupA' n'a plus de permissions explicites sur 'myGlobalCaslib' */
31ACCESSCONTROL.viewCaslibAcs / caslib="myGlobalCaslib";
32RUN;
4 Bloc de code
accessControl.updSomeAcsCaslib, session.addCaslib
Explication :
Cet exemple orienté Viya/CAS illustre la création d'une caslib temporaire ('tempCaslib') au sein de la session CAS active, suivie de l'application de contrôles d'accès par défaut, octroyant des permissions de lecture ('ReadInfo' et 'Select') au groupe 'public'. Le nettoyage de la caslib à la fin de la session est également inclus.
Copié !
1/* Établir une session CAS si ce n'est pas déjà fait */
2cas casauto;
3 
4/* Créer une caslib temporaire 'tempCaslib' pour la session actuelle */
5SESSION.addCaslib / caslib='tempCaslib' active=true;
6RUN;
7 
8/* Définir des permissions par défaut sur 'tempCaslib' : octroyer ReadInfo/Select à 'public' */
9ACCESSCONTROL.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 };
22RUN;
23 
24/* Vérifier les contrôles d'accès de la caslib temporaire */
25ACCESSCONTROL.viewCaslibAcs / caslib="tempCaslib";
26RUN;
27 
28/* Nettoyage : retirer la caslib temporaire à la fin de la session */
29SESSION.dropCaslib / caslib='tempCaslib';
30RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Copyright © SAS Institute Inc. All Rights Reserved.


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« Intégrez systématiquement ces scripts de contrôle d'accès dans vos processus de création de Caslibs. C'est la seule façon de garantir une gouvernance des données homogène et sans faille humaine. »