Les données sont extraites dynamiquement du serveur de métadonnées SAS. Le script ne lit aucune source de données externe (fichier, base de données) ni n'utilise de tables SASHELP. Il opère directement sur les objets de métadonnées retournés par les fonctions SAS.
1 Bloc de code
OPTIONS
Explication : Ce bloc configure les options de connexion au serveur de métadonnées SAS. Il spécifie l'hôte, le port, les informations d'identification de l'administrateur, le référentiel et le protocole nécessaires pour interagir avec les métadonnées SAS.
Explication : Ce DATA step _NULL_ (qui ne crée pas de table SAS) exécute la logique principale. Il définit les anciens et nouveaux domaines via des macro-variables. Il utilise `metadata_resolve` pour compter les objets 'Login' correspondant à une requête de métadonnées. Si des objets sont trouvés, une boucle itère sur chaque 'Login' pour récupérer son URI avec `metadata_getnobj` et son 'UserID' avec `metadata_getattr`. Il manipule ensuite la chaîne de caractères pour remplacer le domaine, et met à jour l'objet de métadonnées avec la nouvelle valeur grâce à `metadata_setattr`, ce qui constitue une opération d'administration.
Copié !
data _null_;
/* Define the old and replacement domains. */
%let old_domain = domain;
%let new_domain = newdomain;
/* End edit. */
/* Define and initialize variables. */
length type id login_uri user stripped_user new_user $ 60;
call missing(type,id,login_uri,user);
/* This is the query to local the Logins with the old domain. */
obj="omsobj:Login? @code_sas_json/list_defaultauth_userids.json contains '&old_domain\'";
/* Count the number of logins found by the query above. */
count=metadata_resolve(obj,type,id);
/* If logins were found, proceed. */
if count > 0 then do n = 1 to count;
/* Get the Metadata URI for the nth login. */
login_rc=metadata_getnobj(obj,n,login_uri);
/* Pull the full user ID for the login. */
rc=metadata_getattr(login_uri,"UserID",user);
/* Strip the domain from the user ID. */
stripped_user=trim(scan(user,2,'\'));
/* Define a new variable with the new domain and the user ID. */
new_user=cats("&new_domain\",stripped_user);
/* Set this new variable as the UserID attribute. */
rc=metadata_setattr(login_uri,"UserID",new_user);
end;
/* If no logins are found with that domain, write that to the SAS log. */
else put "No users match query";
run;
1
DATA _null_;
2
/* Define the old and replacement domains. */
3
%let old_domain = domain;
4
%let new_domain = newdomain;
5
/* End edit. */
6
7
/* Define and initialize variables. */
8
LENGTH type id login_uri user stripped_user new_user $ 60;
9
call missing(type,id,login_uri,user);
10
11
/* This is the query to local the Logins with the old domain. */
/* Count the number of logins found by the query above. */
15
count=metadata_resolve(obj,type,id);
16
17
/* If logins were found, proceed. */
18
IF count > 0 THENDO n = 1 to count;
19
/* Get the Metadata URI for the nth login. */
20
login_rc=metadata_getnobj(obj,n,login_uri);
21
/* Pull the full user ID for the login. */
22
rc=metadata_getattr(login_uri,"UserID",user);
23
/* Strip the domain from the user ID. */
24
stripped_user=trim(scan(user,2,'\'));
25
/* Define a new variable with the new domain and the user ID. */
26
new_user=cats("&new_domain\",stripped_user);
27
/* Set this new variable as the UserID attribute. */
28
rc=metadata_setattr(login_uri,"UserID",new_user);
29
end;
30
/* If no logins are found with that domain, write that to the SAS log. */
31
else put "No users match query";
32
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: 24MAY2019
« La mise à jour des identifiants de connexion (Login) est une opération critique lors d'une refonte d'infrastructure Active Directory. Ce script illustre comment manipuler l'attribut UserID au sein de l'Open Metadata Architecture (OMA) pour assurer la continuité d'accès des utilisateurs sans intervention manuelle dans la SAS Management Console. »
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.