Examples use fictitious identities and caslibs for demonstration purposes, or existing default caslibs like 'CASUSER'.
1 Code Block
PROC CAS
Explanation : This code uses the `access.showRolesIn` action to list all roles and members of those roles (or for the current user with `target='_SELF_'`) to which the executing user belongs. This is a fundamental step to understand current privileges.
Copied!
/* Exemple 1: Vérification des rôles CAS de l'utilisateur */
/* Cet exemple montre comment un utilisateur peut lister les rôles auxquels il appartient dans une session CAS. */
proc cas;
action access.showRolesIn / target='_SELF_';
run;
quit;
/* Explication: L'action access.showRolesIn avec target='_SELF_' permet à l'utilisateur de voir
les rôles qui lui sont attribués, y compris les rôles privilégiés si présents dans son contexte. */
1
/* Exemple 1: Vérification des rôles CAS de l'utilisateur */
2
/* Cet exemple montre comment un utilisateur peut lister les rôles auxquels il appartient dans une session CAS. */
3
4
PROC CAS;
5
ACTION access.showRolesIn / target='_SELF_';
6
RUN;
7
QUIT;
8
9
/* Explication: L'action access.showRolesIn avec target='_SELF_' permet à l'utilisateur de voir
10
les rôles qui lui sont attribués, y compris les rôles privilégiés si présents dans son contexte. */
2 Code Block
PROC CAS
Explanation : This example uses the `access.addGrant` action to assign extended permissions (read, write, delete, promote, and access management) to a user (`sasdemo`) on a specific caslib (`mytestcaslib`). It also includes creating a temporary caslib and checking permissions after granting. This simulates some of the privileges a superuser might have.
Copied!
/* Exemple 2: Octroi de privilèges de gestion de caslib à un utilisateur */
/* Cet exemple simule l'octroi de droits étendus à un utilisateur sur une caslib spécifique. */
/* NOTE: La création de caslibs et la gestion des identités est souvent faite via SAS Environment Manager.
Cet exemple utilise des actions génériques d'accès pour simuler l'octroi de droits. */
proc cas;
/* Créer une caslib temporaire pour la démonstration (si elle n'existe pas) */
action caslib.addCaslib /
caslib='mytestcaslib'
dataSource={srctype='path', path='/tmp/mytestcaslib'}
subdirs=true;
run;
/* Octroyer à l'utilisateur 'sasdemo' des droits de lecture et d'écriture sur 'mytestcaslib' */
/* (Remplacer 'sasdemo' par un nom d'utilisateur existant et 'mytestcaslib' par une caslib valide) */
action access.addGrant /
caslib='mytestcaslib'
identity='sasdemo'
identityType='user'
permissions={'read', 'write', 'delete', 'promote', 'manageAccess'}
target='mytestcaslib';
run;
/* Afficher les permissions de la caslib pour vérifier */
action access.listAcsCaslib /
caslib='mytestcaslib';
run;
quit;
/* Explication: Cette action accorde des permissions étendues (lecture, écriture, suppression,
promotion, gestion des accès) à l'utilisateur 'sasdemo' sur la caslib 'mytestcaslib'.
Pour désigner un 'superuser' complet, des permissions sur toutes les ressources
et des rôles spécifiques (ex: CASHostAccountRequired) seraient nécessaires,
souvent gérés par SAS Environment Manager. */
1
/* Exemple 2: Octroi de privilèges de gestion de caslib à un utilisateur */
2
/* Cet exemple simule l'octroi de droits étendus à un utilisateur sur une caslib spécifique. */
3
/* NOTE: La création de caslibs et la gestion des identités est souvent faite via SAS Environment Manager.
4
Cet exemple utilise des actions génériques d'accès pour simuler l'octroi de droits. */
5
6
PROC CAS;
7
/* Créer une caslib temporaire pour la démonstration (si elle n'existe pas) */
/* Afficher les permissions de la caslib pour vérifier */
25
ACTION access.listAcsCaslib /
26
caslib='mytestcaslib';
27
RUN;
28
QUIT;
29
30
/* Explication: Cette action accorde des permissions étendues (lecture, écriture, suppression,
31
promotion, gestion des accès) à l'utilisateur 'sasdemo' sur la caslib 'mytestcaslib'.
32
Pour désigner un 'superuser' complet, des permissions sur toutes les ressources
33
et des rôles spécifiques (ex: CASHostAccountRequired) seraient nécessaires,
34
souvent gérés par SAS Environment Manager. */
3 Code Block
PROC CAS
Explanation : This code revokes the 'manageAccess' permission for user 'sasdemo' on caslib 'mytestcaslib' using the `access.deleteGrant` action. It then lists the remaining access controls for this caslib to verify the revocation, and finally deletes the temporary caslib created in the previous example.
Copied!
/* Exemple 3: Révoquer des privilèges spécifiques et lister les contrôles d'accès */
/* Cet exemple montre comment révoquer des permissions spécifiques et vérifier les accès restants. */
proc cas;
/* Révoquer la permission 'manageAccess' pour 'sasdemo' sur 'mytestcaslib' */
action access.deleteGrant /
caslib='mytestcaslib'
identity='sasdemo'
identityType='user'
permissions={'manageAccess'}
target='mytestcaslib';
run;
/* Lister tous les contrôles d'accès pour la caslib 'mytestcaslib' après la révocation */
action access.listAcsCaslib /
caslib='mytestcaslib';
run;
/* Supprimer la caslib temporaire */
action caslib.dropCaslib / caslib='mytestcaslib';
run;
quit;
/* Explication: L'action access.deleteGrant retire les permissions spécifiées.
L'action access.listAcsCaslib permet de vérifier les contrôles d'accès définis pour une caslib. */
1
/* Exemple 3: Révoquer des privilèges spécifiques et lister les contrôles d'accès */
2
/* Cet exemple montre comment révoquer des permissions spécifiques et vérifier les accès restants. */
3
4
PROC CAS;
5
/* Révoquer la permission 'manageAccess' pour 'sasdemo' sur 'mytestcaslib' */
6
ACTION access.deleteGrant /
7
caslib='mytestcaslib'
8
identity='sasdemo'
9
identityType='user'
10
permissions={'manageAccess'}
11
target='mytestcaslib';
12
RUN;
13
14
/* Lister tous les contrôles d'accès pour la caslib 'mytestcaslib' après la révocation */
15
ACTION access.listAcsCaslib /
16
caslib='mytestcaslib';
17
RUN;
18
19
/* Supprimer la caslib temporaire */
20
ACTION caslib.dropCaslib / caslib='mytestcaslib';
21
RUN;
22
QUIT;
23
24
/* Explication: L'action access.deleteGrant retire les permissions spécifiées.
25
L'action access.listAcsCaslib permet de vérifier les contrôles d'accès définis pour une caslib. */
4 Code Block
PROC CAS
Explanation : This example demonstrates the use of `access.assumeRole` to temporarily obtain privileges associated with the 'CASHostAccountRequired' role. After performing a task requiring these privileges (like `caslib.listCaslibs` to view all caslibs), `access.dropRole` is used to revert to the user's original permissions. This illustrates temporary superuser privilege management in CAS.
Copied!
/* Exemple 4: Assumer temporairement un rôle de superutilisateur (si autorisé) */
/* Cet exemple montre comment un utilisateur déjà configuré avec la capacité
d'assumer un rôle de superutilisateur peut le faire temporairement,
exécuter des tâches administratives, puis le relâcher. */
/* NOTE: L'utilisateur exécutant ce code doit avoir la capacité d'assumer le rôle
'CASHostAccountRequired' (souvent configuré via SAS Environment Manager). */
proc cas;
/* Assumer temporairement le rôle 'CASHostAccountRequired' */
action access.assumeRole / role='CASHostAccountRequired';
run;
/* Exécuter des actions nécessitant des privilèges élevés */
/* Par exemple, lister toutes les caslibs du serveur (incluant celles qui seraient normalement masquées) */
action caslib.listCaslibs;
run;
/* Relâcher le rôle assumé pour revenir aux privilèges précédents */
action access.dropRole;
run;
/* Vérifier que le rôle a été relâché en listant les caslibs avec les privilèges normaux */
action caslib.listCaslibs;
run;
quit;
/* Explication: access.assumeRole permet une élévation temporaire des privilèges pour des tâches spécifiques.
access.dropRole permet de revenir aux privilèges d'origine. Ceci est une pratique de sécurité essentielle
pour limiter l'exposition aux privilèges élevés. */
1
/* Exemple 4: Assumer temporairement un rôle de superutilisateur (si autorisé) */
2
/* Cet exemple montre comment un utilisateur déjà configuré avec la capacité
3
d'assumer un rôle de superutilisateur peut le faire temporairement,
4
exécuter des tâches administratives, puis le relâcher. */
5
/* NOTE: L'utilisateur exécutant ce code doit avoir la capacité d'assumer le rôle
6
'CASHostAccountRequired' (souvent configuré via SAS Environment Manager). */
7
8
PROC CAS;
9
/* Assumer temporairement le rôle 'CASHostAccountRequired' */
/* Exécuter des actions nécessitant des privilèges élevés */
14
/* Par exemple, lister toutes les caslibs du serveur (incluant celles qui seraient normalement masquées) */
15
ACTION caslib.listCaslibs;
16
RUN;
17
18
/* Relâcher le rôle assumé pour revenir aux privilèges précédents */
19
ACTION access.dropRole;
20
RUN;
21
22
/* Vérifier que le rôle a été relâché en listant les caslibs avec les privilèges normaux */
23
ACTION caslib.listCaslibs;
24
RUN;
25
QUIT;
26
27
/* Explication: access.assumeRole permet une élévation temporaire des privilèges pour des tâches spécifiques.
28
access.dropRole permet de revenir aux privilèges d'origine. Ceci est une pratique de sécurité essentielle
29
pour limiter l'exposition aux privilèges élevés. */
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.
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.