Explication : Étape Data _null_ qui contient la logique métier : résolution des URIs des groupes, vérification de leur existence, comptage des membres, et boucle d'ajout des membres du groupe source vers le groupe cible via les fonctions `metadata_`.
Copié !
data _null_;
/* Initialize variables. */
length type1 type2 id1 id2 src_uri dest_uri mem_uri mem_name $ 50;
call missing (of _character_);
/* Define query. */
src_obj="omsobj:IdentityGroup? @Name=&source_group_name";
dest_obj="omsobj:IdentityGroup? @Name=&dest_group_name";
/* Test for the existence of the source group. */
rc1=metadata_resolve(src_obj,type1,id1);
src_uri=cats(type1,'\',id1);
if rc1 < 1 then do; /* If unable to locate, notify and stop. */
put "ERROR: Source group &source_group_name not found in Metadata.";
stop;
end;
/* Test for the existence of the destination group. */
rc2=metadata_resolve(dest_obj,type2,id2);
dest_uri=cats(type2,'\',id2);
if rc2 < 1 then do; /* If unable to locate, notify and stop. */
put "ERROR: Destination group &dest_group_name not found in Metadata.";
stop;
end;
/* Count the number of members in the source group. */
mem_count=metadata_getnasn(src_uri,"MemberIdentities",1,mem_uri);
put "NOTE: Source group &source_group_name has " mem_count "members.";
/* For each member in the source group, */
/* add the member to the destination group. */
do n=1 to mem_count;
rc=metadata_getnasn(src_uri,"MemberIdentities",n,mem_uri);
rc=metadata_getattr(mem_uri,"Name",mem_name);
put "NOTE: Adding " mem_name "to destination group &dest_group_name";
rc=metadata_setassn(dest_uri,"MemberIdentities","APPEND",mem_uri);
put mem_uri;
end;
run;
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: 29NOV2017
« L'automatisation de la gestion des droits sous SAS 9.4 repose sur une compréhension fine de l'architecture OMS (Open Metadata Architecture). L'utilisation combinée des fonctions metadata_resolve et metadata_setassn permet de manipuler les relations d'objets sans passer par l'interface graphique de la Management Console. La clé ici est la gestion des associations : en utilisant l'option "APPEND" dans la fonction metadata_setassn, vous garantissez que les membres du groupe source sont ajoutés au groupe cible sans écraser les utilisateurs déjà présents.
Attention toutefois : ce script manipule directement le référentiel de sécurité. Assurez-vous de toujours valider l'existence des URI avant toute itération pour éviter de corrompre les associations d'identités ou de générer des erreurs d'exécution bloquantes. »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.