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é !
/* Établir une session CAS si ce n'est pas déjà fait */
cas casauto;
/* Définir une caslib globale si elle n'existe pas */
/* Remplacez 'myGlobalCaslib' par le nom de votre caslib et le chemin si nécessaire */
proc casutil;
addcaslib caslib='myGlobalCaslib' path='/cas/data/myGlobalCaslib' sessref=casauto;
quit;
/* Octroyer les permissions ReadInfo et Select au groupe 'groupA' sur 'myGlobalCaslib' */
accessControl.updSomeAcsCaslib /
acs={
{caslib="myGlobalCaslib",
identity="groupA",
identityType="Group",
permType="Grant",
permission="ReadInfo"},
{caslib="myGlobalCaslib",
identity="groupA",
identityType="Group",
permType="Grant",
permission="Select"}
};
run;
/* Vérifier les contrôles d'accès de la caslib */
accessControl.viewCaslibAcs / caslib="myGlobalCaslib";
run;
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 */
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é !
/* Établir une session CAS si ce n'est pas déjà fait */
cas casauto;
/* Supposons que 'existingCaslib' existe */
/* Octroyer la permission Write à l'utilisateur 'userB' sur 'existingCaslib' */
accessControl.updSomeAcsCaslib /
acs={
{caslib="existingCaslib",
identity="userB",
identityType="User",
permType="Grant",
permission="Write"}
};
run;
/* Vérifier les contrôles d'accès de la caslib 'existingCaslib' */
accessControl.viewCaslibAcs / caslib="existingCaslib";
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' */
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é !
/* Établir une session CAS si ce n'est pas déjà fait */
cas casauto;
/* Révoquer toutes les permissions du groupe 'groupA' sur 'myGlobalCaslib' */
accessControl.updSomeAcsCaslib /
acs={
{caslib="myGlobalCaslib",
identity="groupA",
identityType="Group",
permType="Revoke",
permission="ReadInfo"},
{caslib="myGlobalCaslib",
identity="groupA",
identityType="Group",
permType="Revoke",
permission="Select"},
{caslib="myGlobalCaslib",
identity="groupA",
identityType="Group",
permType="Revoke",
permission="Write"},
{caslib="myGlobalCaslib",
identity="groupA",
identityType="Group",
permType="Revoke",
permission="Delete"}
};
run;
/* Vérifier que le groupe 'groupA' n'a plus de permissions explicites sur 'myGlobalCaslib' */
accessControl.viewCaslibAcs / caslib="myGlobalCaslib";
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' */
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é !
/* Établir une session CAS si ce n'est pas déjà fait */
cas casauto;
/* Créer une caslib temporaire 'tempCaslib' pour la session actuelle */
session.addCaslib / caslib='tempCaslib' active=true;
run;
/* Définir des permissions par défaut sur 'tempCaslib' : octroyer ReadInfo/Select à 'public' */
accessControl.updSomeAcsCaslib /
acs={
{caslib="tempCaslib",
identity="public",
identityType="Group",
permType="Grant",
permission="ReadInfo"},
{caslib="tempCaslib",
identity="public",
identityType="Group",
permType="Grant",
permission="Select"}
};
run;
/* Vérifier les contrôles d'accès de la caslib temporaire */
accessControl.viewCaslibAcs / caslib="tempCaslib";
run;
/* Nettoyage : retirer la caslib temporaire à la fin de la session */
session.dropCaslib / caslib='tempCaslib';
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 */
/* Nettoyage : retirer la caslib temporaire à la fin de la session */
29
SESSION.dropCaslib / caslib='tempCaslib';
30
RUN;
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.
« 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. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.