accessControl

isAuthorizedTables

##set_accesscontrol ##security

Description

Vérifie si l'accès est autorisé pour une ou plusieurs tables spécifiées. C'est idéal pour s'assurer que vous n'allez pas vous faire recaler par la sécurité en plein milieu de l'exécution de votre code !

Syntaxe Officielle
proc cas;
accessControl.isAuthorizedTables /
caslib="chaîne_de_caractères"
permission="ALTERTABLE" | "CREATETABLE" | "DELETE" | "DELETESOURCE" | "DROPTABLE" | "INSERT" | "LIMITEDPROMOTE" | "MANAGEACCESS" | "READINFO" | "SELECT" | "UPDATE"
tables={"chaîne-1" <, "chaîne-2", ...>};
run;
quit;

Paramètres Clés

Nom du paramètre Description
caslib Spécifie le nom de la bibliothèque CAS (caslib). Ce paramètre est obligatoire.
permission Spécifie le type de permission à tester. Obligatoire. La valeur par défaut est SELECT. Les autres valeurs possibles permettent de vérifier l'ajout (INSERT), la suppression (DELETE, DELETESOURCE, DROPTABLE), la modification (ALTERTABLE, UPDATE) ou d'autres droits d'accès.
tables Spécifie une liste contenant le nom d'une ou de plusieurs tables pour lesquelles l'autorisation doit être vérifiée.

Préparation des données

Création d'une table d'exemple

On crée et on charge une petite table de test dans la session CAS pour pouvoir interroger nos droits dessus.

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

Exemples d'utilisation

Vérification basique des droits de lecture

Vérifie si l'utilisateur courant a la permission par défaut (SELECT) pour lire la table spécifiée. Simple, net et sans bavure.

1PROC CAS;
2 ACCESSCONTROL.isAuthorizedTables / caslib="casuser" tables={"cars_test"};
3RUN;
4QUIT;
Résultat Attendu :
Renvoie un tableau détaillant le statut d'autorisation (vrai ou faux) pour l'accès en lecture à la table 'cars_test'.
Vérifier le droit de suppression (DROPTABLE) sur de multiples tables

Vérifie si l'on est autorisé à décharger/supprimer plusieurs tables spécifiques, ce qui évite les erreurs fatales d'accès refusé en plein script de nettoyage.

1PROC CAS;
2 ACCESSCONTROL.isAuthorizedTables / caslib="casuser" permission="DROPTABLE" tables={"cars_test", "autre_table_test"};
3RUN;
4QUIT;
Résultat Attendu :
Affiche le détail des autorisations pour l'action DROPTABLE concernant chacune des tables demandées, avec une colonne indiquant le résultat de l'évaluation.