accessControl

listAcsData

##caslib ##admin ##admin_required ##set_accesscontrol ##security
Privilèges administrateur requis

Cette action nécessite des droits élevés sur l'environnement SAS Viya.
Code d'élévation : proc cas; accessControl.assumeRole / adminRole="superuser"; run;

Description

C'est un peu comme passer vos données au détecteur de mensonges pour savoir qui a vraiment le droit de les consulter ou de les modifier.

L'action accessControl.listAcsData est l'outil d'audit par excellence dans SAS Viya. Elle vous permet de lister et d'examiner les contrôles d'accès (ACL) appliqués aux bibliothèquesPointeurs logiques (Libref) reliant SAS Viya à des sources de données physiques (dossiers, bases de données, CAS) pour lire, écrire et organiser les tables de manière structurée. (caslibsUne caslib est un conteneur logique dans SAS Viya regroupant des données en mémoire (tables CAS) et une source de stockage physique, tout en gérant les droits d'accès associés.), aux tables et même jusqu'au niveau de la colonne. C'est un peu comme passer vos données au détecteur de mensonges pour savoir qui a vraiment le droit de les consulter ou de les modifier. Un indispensable pour les administrateurs qui veulent s'assurer que leurs secrets sont bien gardés ! 🕵️‍♂️

Syntaxe Officielle
accessControl.listAcsData /
caslib="nom-de-la-caslib",
table="nom-de-la-table",
column="nom-de-la-colonne",
listType="ALL" | "DIRECT" | "EFFECTIVE" | "INHERITED";

Paramètres Clés

Nom du paramètre Description
caslib Indique le nom de la caslib pour laquelle vous souhaitez voir les permissions.
column Spécifie le nom d'une colonne si vous voulez restreindre l'affichage des droits au niveau le plus fin.
listType (Requis) Définit le type de contrôles à afficher . 'DIRECT' montre les droits posés explicitement, 'INHERITED' ceux venant du parent, et 'EFFECTIVE' le résultat final (le vrai droit de l'utilisateur).
table Indique le nom de la table cible dans la caslib spécifiée.

Préparation des données

Préparation d'une table pour l'audit

Nous créons une table simple pour illustrer comment vérifier ses droits d'accès par la suite.

1PROC CAS; TABLE.loadTable / path="cars.sas7bdat", caslib="casuser", casOut={name="audit_test", caslib="casuser", replace=true}; RUN;

Exemples d'utilisation

Lister les permissions directes d'une Caslib

Cet exemple affiche les contrôles d'accès posés directement sur la caslib 'Public'. Simple, net et sans bavure.

1PROC CAS; ACCESSCONTROL.listAcsData / caslib="Public", listType="DIRECT"; RUN;
Résultat Attendu :
Un tableau affichant l'identité (utilisateur/groupe), les permissions (Read, Write, etc.) et le statut (Grant/Deny) définis directement sur la Caslib.
Audit complet des droits effectifs sur une colonne

On sort l'artillerie lourde : on veut savoir exactement quel est le droit final (effectif) d'un utilisateur sur la colonne 'MSRP' de notre table de test. Idéal pour vérifier si les salaires ou les prix sont bien cachés !

1PROC CAS; ACCESSCONTROL.assumeRole / adminRole="superuser"; ACCESSCONTROL.listAcsData / caslib="casuser", TABLE="audit_test", column="MSRP", listType="EFFECTIVE"; RUN;
Résultat Attendu :
Le résultat final calculé par CAS, prenant en compte l'héritage et les priorités de Grant/Deny, spécifiquement pour la colonne demandée.