accessControl

listAllPrincipals

##caslib ##set_accesscontrol ##security

Description

Audit des Identités CAS

L'action listAllPrincipals permet de lister tous les principaux (utilisateurs ou groupes) qui possèdent des contrôles d'accès explicites sur un objet spécifique (comme une table, une caslibEspace de stockage logique dans SAS Viya. Elle définit l’accès aux données (source physique) et leur chargement en mémoire (serveur CAS) pour permettre des analyses distribuées haute performance. ou un action setGemini said

Groupe logique de fonctionnalités CAS (Cloud Analytic Services) contenant des actions spécifiques (statistiques, data mining, etc.) pour traiter les données en mémoire de manière optimisée.
). C'est un peu le videur de la boîte de nuit de vos données : il vous dit exactement qui a son nom sur la liste VIP .

Syntaxe Officielle
proc cas;
accessControl.listAllPrincipals result=r /
includeMyInfo=TRUE | FALSE,
objectSelector={objType="ACTION" | "ACTIONSET" | "CASLIB" | "COLUMN" | "TABLE", <objType-specific-parameters>};
quit;

Paramètres Clés

Nom du paramètre Description
includeMyInfo Booléen (par défaut à FALSE). Si ce paramètre est défini sur True, il garantit que l'identité de l'utilisateur actuellement connecté est renvoyée et apparaît en toute première position dans la table de résultats.
objectSelector Liste spécifiant le type d'objet (objType) pour lequel vous souhaitez obtenir les informations d'accès. Les paramètres supplémentaires requis dépendent du type choisi : actionSet et action (pour l'objType ACTION), actionSet (pour ACTIONSET), caslib (pour CASLIB), caslib et table (pour TABLE), ou caslib, table et column (pour COLUMN).

Préparation des données

Création d'une table de test en mémoire

Pour pouvoir vérifier les accès sur une table, chargeons un jeu de données standard dans la caslib 'Public'.

1PROC CAS;
2 SESSION casauto;
3 TABLE.loadTable / caslib="Public" path="cars.sashdat" casout={name="cars_test", caslib="Public", replace=true};
4QUIT;

Exemples d'utilisation

Lister les accès d'une Caslib

Ce code simple interroge le système pour lister tous les groupes et utilisateurs ayant des droits d'accès définis explicitement sur la caslib 'Public'.

1PROC CAS;
2 ACCESSCONTROL.listAllPrincipals RESULT=r /
3 objectSelector={objType="CASLIB", caslib="Public"};
4 PRINT r.principalIdentities;
5QUIT;
Résultat Attendu :
Une table 'principalIdentities' listant les principaux (identités) et leurs permissions explicites sur la caslib Public.
Vérification des accès sur une table spécifique

Nous voulons savoir exactement qui a accès à notre table 'cars_test' dans la caslib 'Public', tout en s'assurant que nos propres informations s'affichent en haut de la liste (includeMyInfo=true), parce qu'il est toujours bon de s'assurer qu'on a soi-même le droit d'entrer !

1PROC CAS;
2 ACCESSCONTROL.listAllPrincipals RESULT=res_table /
3 includeMyInfo=true
4 objectSelector={
5 objType="TABLE",
6 caslib="Public",
7 TABLE="cars_test"
8 };
9 PRINT res_table.principalIdentities;
10QUIT;
Résultat Attendu :
Affichage de la table avec l'utilisateur actuel en première ligne, suivi des autres entités possédant des contrôles d'accès explicites sur la table 'cars_test'.
Inspecter les droits sur un Action Set

On vérifie ici quels principaux ont des permissions explicites sur l'ensemble d'actions 'accessControl'. C'est de la sécurité appliquée à la sécurité, une vraie mise en abyme !

1PROC CAS;
2 ACCESSCONTROL.listAllPrincipals RESULT=res_action /
3 objectSelector={objType="ACTIONSET", actionSet="accessControl"};
4 PRINT res_action.principalIdentities;
5QUIT;
Résultat Attendu :
La table renvoyée liste les principaux configurés pour gérer ou utiliser l'Action Set 'accessControl'.