accessControl

checkOutObject

##caslib ##set_accesscontrol ##security

Description

L'action accessControl.checkOutObject est le mécanisme de réservation de SAS Viya pour la gestion de la sécurité. Elle permet de poser un verrou (exclusif ou partagé) sur un objet comme 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., une table ou même une colonne spécifique. En extrayant un objet, vous garantissez que votre sessionInstance de connexion active entre un client et le serveur CAS (Cloud Analytic Services), isolant les ressources, les bibliothèques et les traitements d'un utilisateur au sein de SAS Viya. est la seule habilitée à préparer des modifications de permissionsRègles d'accès définissant les actions autorisées (Lire, Écrire, Supprimer, etc.) d'un utilisateur ou groupe sur un objet ou une donnée via le service d'autorisation de SAS Viya. durant une transactionUnité de travail logique regroupant une ou plusieurs opérations. Elle garantit l'intégrité des données en validant (commit) ou annulant (rollback) l'ensemble des modifications de manière atomique.. C'est un peu comme réserver une salle de réunion : personne d'autre ne peut y entrer pour changer la décoration tant que vous n'avez pas rendu les clés (ou commis vos changements).

Syntaxe Officielle
accessControl.checkOutObject /
checkoutParent=true | false,
checkOutType="EXCLUSIVE" | "SHARED",
ObjectSelector={
objType="ACTION" | "ACTIONSET" | "CASLIB" | "COLUMN" | "TABLE",
action="nom_action",
actionSet="nom_actionset",
caslib="nom_caslib",
table="nom_table",
column="nom_colonne"
};

Paramètres Clés

Nom du paramètre Description
checkoutParent Booléen. Si l'objet que vous tentez d'extraire n'existe pas encore, cette option permet de remonter automatiquement d'un niveau et de verrouiller l'objet parent à la place.
checkOutType Définit le mode de verrouillage : 'EXCLUSIVE' (par défaut) interdit toute autre modification par d'autres sessions, tandis que 'SHARED' empêche simplement les autres sessions de prendre un verrou exclusif sur cet objet ou ses parents.
ObjectSelector Un dictionnaire complexe spécifiant le type d'objet (objType) et ses identifiants techniques (nom de la table, de la caslib, etc.).

Préparation des données

Création d'une table de test

Génération d'une table simple dans la caslib CASUSER pour illustrer l'extraction.

1DATA casuser.table_test; DO id=1 to 10; score=ranuni(1); OUTPUT; END; RUN; PROC CAS; TABLE.promote / name="table_test", caslib="casuser"; RUN;

Exemples d'utilisation

Extraction exclusive d'une table

Cet exemple verrouille une table de manière exclusive pour préparer une modification de droits d'accès.

1PROC CAS; ACCESSCONTROL.checkOutObject / ObjectSelector={objType="TABLE", caslib="casuser", TABLE="table_test"}; RUN;
Résultat Attendu :
L'objet est réservé pour la session actuelle dans le cadre d'une transaction.
Extraction partagée au niveau d'une colonne avec option parent

Exemple avancé utilisant un verrou partagé sur une colonne spécifique et activant la remontée au parent si nécessaire.

1PROC CAS; ACCESSCONTROL.checkOutObject / checkoutParent=true, checkOutType="SHARED", ObjectSelector={objType="COLUMN", caslib="casuser", TABLE="table_test", column="score"}; RUN;
Résultat Attendu :
La colonne 'score' est extraite en mode partagé, empêchant tout autre utilisateur de verrouiller exclusivement la table entière.
Extraction d'une Caslib entière

Permet de geler les métadonnées de sécurité au niveau de la bibliothèque pour une révision globale.

1PROC CAS; ACCESSCONTROL.checkOutObject / ObjectSelector={objType="CASLIB", caslib="public"}; RUN;
Résultat Attendu :
La caslib 'public' est verrouillée pour les modifications de métadonnées de sécurité de la session.