Publié le :

Ajout massif de groupes dans les métadonnées SAS 9

Ce code est également disponible en : English Español
Attention : Ce code nécessite des droits administrateur.
Ce programme est conçu pour l'environnement SAS© 9.x. Il se connecte au serveur de métadonnées (Metadata Server) en utilisant les options fournies. Il identifie un groupe cible défini par la macro variable 'addgroup', recense tous les objets de type 'IdentityGroup' avec le PublicType 'UserGroup', et les ajoute systématiquement comme membres du groupe cible à l'aide des fonctions d'interface de métadonnées.
Analyse des données

Type : EXTERNE


Les données sont manipulées directement sur le serveur de métadonnées SAS (OMR) via des fonctions spécifiques (metadata_getnobj, metadata_setassn).

1 Bloc de code
OPTIONS
Explication :
Configuration de la connexion au serveur de métadonnées SAS 9 et définition du nom du groupe cible.
Copié !
1options
2 metaserver="meta.demo.sas.com"
3 metaport=8561
4 metauser="sasadm @saspw"
5 metapass="password"
6 metarepository=Foundation
7 metaprotocol=bridge;
8 
9%let addgroup='Red Test';
2 Bloc de code
DATA STEP
Explication :
Logique principale : récupération des URIs des objets métadonnées, itération sur la liste des groupes existants et mise à jour des associations du groupe cible.
Copié !
1DATA _null_;
2 /* Initialize variables. */
3 LENGTH type id addgroup_uri group_uri group_name $ 50;
4 call missing (of _character_);
5 
6 /* Set queries for all groups and for specific group. */
7 group_obj="omsobj:IdentityGroup? @Name=&addgroup";
8 allgrp_obj="omsobj:IdentityGroup? @PublicType='UserGroup'";
9 
10 /* Get URI for the group name defined in the 'addgroup' macro variable above. */
11 rc=metadata_getnobj(group_obj,1,addgroup_uri);
12 
13 /* Count all groups. */
14 group_count=metadata_resolve(allgrp_obj,type,id);
15 
16 /* If there are groups, do this for each group... */
17 IF group_count > 0 THEN DO n=1 to group_count;
18 /* Get the URI of the group. */
19 rc=metadata_getnobj(allgrp_obj,n,group_uri);
20 /* Get the name of the group. */
21 rc=metadata_getattr(group_uri,"Name",group_name);
22 
23 /* If the group name is that of the addgroup, do nothing. */
24 IF group_name = &addgroup THEN;
25 ELSE DO; /* If not... */
26 put "Adding " group_name;
27 /* Add it to the membership. */
28 rc = metadata_setassn(addgroup_uri,"MemberIdentities","APPEND",group_uri);
29 END;
30 END;
31RUN;
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 : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0


Banner
Le Conseil de l'Expert
Expert
Simon
Expert SAS et fondateur.
« L'ajout massif de membres au sein d'un groupe de métadonnées est une opération d'administration puissante qui permet de structurer rapidement les droits d'accès. Ce script utilise les fonctions d'interface de métadonnées pour manipuler l'Open Metadata Architecture (OMA), transformant une tâche manuelle fastidieuse dans la SAS Management Console en un processus batch reproductible et sans erreur. »