Publié le :
Administration CREATION_INTERNE

Désignation de Superutilisateur CAS

Ce code est également disponible en : Deutsch English Español
Attention : Ce code nécessite des droits administrateur.
L'ensemble d'actions 'Access Control' de CAS permet de gérer les autorisations d'accès aux ressources CAS, y compris les caslibs, les tables et les actions. La désignation d'un superutilisateur implique généralement l'attribution de rôles ou de groupes prédéfinis (comme 'CASHostAccountRequired' pour l'accès direct à l'hôte ou des rôles avec des capacités étendues) qui confèrent des privilèges administratifs complets sur le serveur CAS. Bien que la gestion complète des identités et des rôles soit souvent effectuée via SAS© Environment Manager, des actions CASL spécifiques peuvent être utilisées pour inspecter et modifier certains aspects des contrôles d'accès, et pour assumer temporairement des rôles privilégiés si l'utilisateur y est déjà autorisé.
Analyse des données

Type : CREATION_INTERNE


Les exemples utilisent des identités et caslibs fictives à des fins de démonstration, ou des caslibs existantes par défaut comme 'CASUSER'.

1 Bloc de code
PROC CAS
Explication :
Ce code utilise l'action `access.showRolesIn` pour lister tous les rôles et les membres de ces rôles (ou pour l'utilisateur courant avec `target='_SELF_'`) auxquels l'utilisateur exécutant le code appartient. C'est une étape fondamentale pour comprendre les privilèges actuels.
Copié !
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 
4PROC CAS;
5 ACTION access.showRolesIn / target='_SELF_';
6 RUN;
7QUIT;
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 Bloc de code
PROC CAS
Explication :
Cet exemple utilise l'action `access.addGrant` pour attribuer des permissions étendues (lecture, écriture, suppression, promotion et gestion d'accès) à un utilisateur (`sasdemo`) sur une caslib spécifique (`mytestcaslib`). Il inclut également la création d'une caslib temporaire et la vérification des permissions après l'octroi. Ceci simule une partie des privilèges qu'un superutilisateur pourrait avoir.
Copié !
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 
6PROC CAS;
7 /* Créer une caslib temporaire pour la démonstration (si elle n'existe pas) */
8 ACTION caslib.addCaslib /
9 caslib='mytestcaslib'
10 dataSource={srctype='path', path='/tmp/mytestcaslib'}
11 subdirs=true;
12 RUN;
13 
14 /* Octroyer à l'utilisateur 'sasdemo' des droits de lecture et d'écriture sur 'mytestcaslib' */
15 /* (Remplacer 'sasdemo' par un nom d'utilisateur existant et 'mytestcaslib' par une caslib valide) */
16 ACTION access.addGrant /
17 caslib='mytestcaslib'
18 identity='sasdemo'
19 identityType='user'
20 permissions={'read', 'write', 'delete', 'promote', 'manageAccess'}
21 target='mytestcaslib';
22 RUN;
23 
24 /* Afficher les permissions de la caslib pour vérifier */
25 ACTION access.listAcsCaslib /
26 caslib='mytestcaslib';
27 RUN;
28QUIT;
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 Bloc de code
PROC CAS
Explication :
Ce code révoque la permission 'manageAccess' pour l'utilisateur 'sasdemo' sur la caslib 'mytestcaslib' à l'aide de l'action `access.deleteGrant`. Il liste ensuite les contrôles d'accès restants pour cette caslib afin de vérifier la révocation, puis supprime la caslib temporaire créée dans l'exemple précédent.
Copié !
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 
4PROC 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;
22QUIT;
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 Bloc de code
PROC CAS
Explication :
Cet exemple démontre l'utilisation de `access.assumeRole` pour obtenir temporairement des privilèges associés au rôle 'CASHostAccountRequired'. Après avoir exécuté une tâche nécessitant ces privilèges (comme `caslib.listCaslibs` pour voir toutes les caslibs), `access.dropRole` est utilisée pour revenir aux permissions d'origine de l'utilisateur. Ceci illustre la gestion temporaire des privilèges superutilisateur dans CAS.
Copié !
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 
8PROC CAS;
9 /* Assumer temporairement le rôle 'CASHostAccountRequired' */
10 ACTION access.assumeRole / role='CASHostAccountRequired';
11 RUN;
12 
13 /* 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;
25QUIT;
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. */
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