Publié le :
Administration CREATION_INTERNE

Création de rôle SAS Viya via DATA step et fonctions Metadata

Ce code est également disponible en : English Español
Attention : Ce code nécessite des droits administrateur.
Le programme utilise un DATA step 'data _null_;' pour interagir avec le serveur de métadonnées SAS© Viya. Il initialise des variables, puis procède à la création d'un objet 'IdentityGroup' de type 'Role' avec un nom spécifié. Divers attributs (PublicType, GroupType, UsageVersion, IsHidden, Desc, DisplayName) sont définis pour ce nouveau rôle. Ensuite, le script identifie l'URI d'une capacité ('Server Manager' Access Control Entry) et l'associe au rôle. Enfin, le rôle nouvellement créé est ajouté comme membre à un groupe d'identité existant nommé 'group1'. Ce script est purement administratif et modifie la configuration de sécurité de SAS© Viya.
Analyse des données

Type : CREATION_INTERNE


Le script ne lit pas de données tabulaires. Il manipule des objets de métadonnées de SAS Viya. Les données nécessaires à la création du rôle (nom, attributs, capacités, groupe cible) sont définies directement dans le code SAS, sans dépendre de sources de données externes ou de SASHELP.

1 Bloc de code
DATA STEP
Explication :
Ce bloc DATA step utilise une série de fonctions SAS Metadata pour effectuer des opérations administratives. Il commence par initialiser des variables. Ensuite, il crée un nouvel objet de métadonnées de type 'IdentityGroup' (représentant un rôle) avec un nom spécifique ('New Role Name'). Des attributs obligatoires et facultatifs sont définis pour ce rôle. Le script récupère ensuite l'URI d'une capacité ('Server Manager') dans les métadonnées et l'associe au rôle. Enfin, il ajoute le rôle nouvellement créé à un groupe d'identité existant nommé 'group1'. Toutes ces opérations sont persistantes dans le référentiel de métadonnées de SAS Viya.
Copié !
1DATA _null_;
2 /**** Initialize Variables ****/
3 LENGTH uri $ 38 cap_uri $ 43;
4 call missing (of _character_);
5 
6 /**** Create the object. ****/
7 rc=metadata_newobj("IdentityGroup",uri,"New Role Name");
8 
9 /* Add some required attributes. */
10 rc=metadata_setattr(uri,"PublicType","Role");
11 rc=metadata_setattr(uri,"GroupType","ROLE");
12 rc=metadata_setattr(uri,"UsageVersion","1000000.0");
13 rc=metadata_setattr(uri,"IsHidden","0");
14 
15 /* Add some optional attributes. */
16 rc=metadata_setattr(uri,"Desc","This is the description of the new role");
17 rc=metadata_setattr(uri,"DisplayName","This is the display name of the role");
18 
19 /**** Add a capability. ****/
20 
21 /* Define the search for the access control entry for the cability */
22 cap_obj="omsobj:AccessControlEntry?AccessControlEntry[Objects/ApplicationAction[ @Name='Server Manager']]";
23 
24 /* Pull it's URI into the variable cap_uri */
25 rc=metadata_getnobj(cap_obj,1,cap_uri);
26 
27 /* Add the capability association to the role. */
28 rc=metadata_setassn(uri,"AccessControlEntries","APPEND",cap_uri);
29 
30 /**** Add the Role to a Group ****/
31 rc=metadata_setassn(uri,"MemberIdentities","APPEND","omsobj:IdentityGroup? @Name='group1'");
32RUN;
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
Informations de Copyright : Author: Greg Wootton Date: 09OCT2020


Banner
Le Conseil de l'Expert
Expert
Michael
Responsable de l'infrastructure Viya.
« Cette approche est particulièrement pertinente pour les administrateurs souhaitant industrialiser la gouvernance. Utiliser un script pour l'association de privilèges comme 'Server Manager' garantit une réplicabilité parfaite entre les environnements de développement et de production, tout en minimisant les erreurs humaines inhérentes à la configuration manuelle »