listAllPrincipals
Description
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 .
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'.
| 1 | PROC CAS; |
| 2 | SESSION casauto; |
| 3 | TABLE.loadTable / caslib="Public" path="cars.sashdat" casout={name="cars_test", caslib="Public", replace=true}; |
| 4 | QUIT; |
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'.
| 1 | PROC CAS; |
| 2 | ACCESSCONTROL.listAllPrincipals RESULT=r / |
| 3 | objectSelector={objType="CASLIB", caslib="Public"}; |
| 4 | PRINT r.principalIdentities; |
| 5 | QUIT; |
Résultat Attendu :
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 !
| 1 | PROC 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; |
| 10 | QUIT; |
Résultat Attendu :
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 !
| 1 | PROC CAS; |
| 2 | ACCESSCONTROL.listAllPrincipals RESULT=res_action / |
| 3 | objectSelector={objType="ACTIONSET", actionSet="accessControl"}; |
| 4 | PRINT res_action.principalIdentities; |
| 5 | QUIT; |