Examples use caslib and group/user names that are fictitious or default existing ones in the Viya environment. No external data is required as the manipulation concerns security metadata.
1 Code Block
accessControl.updSomeAcsCaslib
Explanation : This basic example shows how to make a global caslib (here 'myGlobalCaslib') available to a group ('groupA') with read permissions ('ReadInfo' and 'Select'). It includes the creation of a fictitious caslib and permission verification after granting.
Copied!
/* É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 */
Explanation : This intermediate example grants 'Write' permission to a specific user ('userB') on an existing caslib ('existingCaslib'). Permission verification confirms the application of changes.
Copied!
/* É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' */
Explanation : This advanced example shows how to explicitly revoke multiple permissions (ReadInfo, Select, Write, Delete) from a group ('groupA') on a caslib ('myGlobalCaslib'). This is useful for withdrawing previously granted access.
Copied!
/* É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' */
Explanation : This Viya/CAS-oriented example illustrates the creation of a temporary caslib ('tempCaslib') within the active CAS session, followed by the application of default access controls, granting read permissions ('ReadInfo' and 'Select') to the 'public' group. Cleanup of the caslib at the end of the session is also included.
Copied!
/* É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;
This material is provided "as is" by We Are Cas. There are no warranties, expressed or implied, as to merchantability or fitness for a particular purpose regarding the materials or code contained herein. We Are Cas is not responsible for errors in this material as it now exists or will exist, nor does We Are Cas provide technical support for it.
« Always use the accessControl.viewCaslibAcs action immediately after a modification. This allows you to verify the "Effective Access," ensuring that a Revoke on one group isn't accidentally blocking a user who belongs to multiple departments. »
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.