Publié le :
Administration CREATION_INTERNE

Suppression d'utilisateurs des métadonnées

Ce code est également disponible en : Deutsch English Español
En attente de validation
Attention : Ce code nécessite des droits administrateur.
Ce script configure d'abord la connexion au serveur de métadonnées (SAS© Metadata Server). Il génère ensuite une table temporaire contenant les noms d'utilisateurs à supprimer via des datalines. Enfin, il exécute une étape DATA _NULL_ pour itérer sur cette liste, supprimer les logins associés (metadata_delassn) et l'objet personne (metadata_delobj), avec une gestion d'erreurs et de logs.
Analyse des données

Type : CREATION_INTERNE


Les noms d'utilisateurs sont définis directement dans le code via l'instruction DATALINES.

1 Bloc de code
DATA STEP Data
Explication :
Définition des options de connexion au serveur de métadonnées et création de la table 'work.delusers' contenant les identifiants à supprimer.
Copié !
1options metaserver='meta.example.com'
2 metaport=8561
3 metaprotocol='bridge'
4 metauser='sasadm @saspw'
5 metapass='password'
6;
7
8DATA work.delusers;
9 INFILE DATALINES truncover;
10 LENGTH username $ 255;
11 call missing (of _character_);
12 INPUT username $1-255;
13 DATALINES;
14 deltest
15 deltest1
16 deltest2
17 del test3
18;;
19RUN;
2 Bloc de code
DATA STEP
Explication :
Suppression effective utilisant les fonctions de métadonnées : construction de l'URI de l'objet personne, suppression des logins associés, puis suppression de l'objet utilisateur, avec traçabilité dans le journal.
Copié !
1DATA _null_;
2 
3 /* Read in the data set. */
4 SET work.delusers;
5 
6 /* Build a URI from the supplied user name. */
7 obj="omsobj:Person? @Name='"||trim(username)||"'";
8 
9 /* Delete the Logins associated with the user. */
10 rc=metadata_delassn(obj,"Logins");
11
12 /* Check if the delete of Logins was successful. */
13 
14 IF rc ne 0 THEN DO;
15 /* Throw an error if the login delete action failed. */
16 put "ERROR: Failed to delete associated logins for user " username ". " rc=;
17 END;
18 /* If deleting logins was successful, move on to deleting the user. */
19 ELSE DO;
20 /* Write a note to the log indicating the delete of logins was successful. */
21 put "NOTE: Successfully deleted logins associated with user " username". Attempting to delete user.";
22 
23 /* Delete the user object. */
24 rc=metadata_delobj(obj);
25 
26 /* Check if delete was successful. */
27 IF rc ne 0 THEN DO;
28
29 /* If not, throw an error. */
30 put "ERROR: Failed to delete user " username ". " rc=;
31 END;
32 
33 /* If so, note that delete was successful. */
34 ELSE put "NOTE: Successfully deleted user " username ".";
35 END;
36RUN;
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.


Banner
Le Conseil de l'Expert
Expert
Stéphanie
Spécialiste Machine Learning et IA.
« La suppression d'utilisateurs via le langage de programmation SAS est une méthode puissante pour automatiser le nettoyage des environnements SAS 9, mais elle exige une rigueur absolue. L'approche présentée ici suit les meilleures pratiques d'administration : avant de supprimer l'objet Person (l'identité principale), le script utilise metadata_delassn pour rompre les liens avec les objets Logins. Cette étape est cruciale pour éviter de laisser des "objets orphelins" dans le référentiel, ce qui pourrait à terme ralentir le serveur de métadonnées ou causer des incohérences lors d'audits de sécurité. »