Veröffentlicht am :
Verwaltung CREATION_INTERNE

Benutzer-IDs nach Gruppe extrahieren (SAS 9 Metadaten)

Dieser Code ist auch verfügbar auf: English Español Français
Wartet auf Validierung
Attention : Dieser Code erfordert Administratorrechte.
Dieses Programm stellt eine Verbindung zu einem veralteten SAS© 9 Metadaten-Server her. Es fragt dann die Metadaten ab, um eine bestimmte Gruppe zu finden, deren Mitglieder (Personen) aufzulisten und deren zugehörige Anmeldeinformationen abzurufen. Wichtiger Hinweis: Dieser Code wurde explizit für SAS© 9.x (unter Verwendung der Metadaten-Schnittstelle) entwickelt und funktioniert nicht auf einer Standardinstallation von SAS© Viya 4 ohne Zugriff auf einen externen SAS© 9 Metadaten-Server.
Datenanalyse

Type : CREATION_INTERNE


Die Daten werden dynamisch durch Abfrage des Metadaten-Servers über die SAS-Funktionen `metadata_*` generiert.

1 Codeblock
GLOBAL OPTIONS
Erklärung :
Konfiguration der Verbindungsoptionen zum SAS 9 Metadaten-Server (Adresse, Port, Benutzer, Passwort) und Definition der Makro-Variable der zu analysierenden Gruppe.
Kopiert!
1options metaserver="meta.demo.sas.com"
2 metaport=8561
3 metauser="sasadm @saspw"
4 metapass="Password"
5 metarepository=Foundation
6 metaprotocol=Bridge;
7 
8/* Provide a group name you would like to query. */
9%let groupname=SAS Administrators;
2 Codeblock
DATA STEP Data
Erklärung :
Haupt-DATA-Schritt, der die Metadatenstruktur durchläuft. Er löst das Gruppenobjekt auf, iteriert durch seine Mitgliederidentitäten und geht dann zu den Anmeldeobjekten, um die Benutzer-ID und die Authentifizierungsdomäne zu extrahieren, wobei das Ergebnis in der Tabelle `usertab` gespeichert wird.
Kopiert!
1DATA usertab;
2LENGTH type id group_uri group_name per_uri per_name log_uri user_id ad_uri ad_name $ 256;
3call missing(type,id,group_uri,group_name,per_uri,per_name,log_uri,user_id,ad_uri,ad_name);
4obj="omsobj:IdentityGroup? @DisplayName='&groupname'";
5groupCount=metadata_resolve(obj,type,id);
6put groupCount=;
7IF groupCount = 0 THEN DO;
8 put "ERROR: No groups named &groupname defined in the repository.";
9 stop;
10END;
11IF groupCount > 0 THEN DO n=1 to groupCount;
12 rc=metadata_getnobj(obj,n,group_uri);
13 rc=metadata_getattr(group_uri,"DisplayName",group_name);
14 put group_name=;
15 memCount=metadata_getnasn(group_uri,"MemberIdentities",1,per_uri);
16 IF memCount > 0 THEN DO m=1 to memCount;
17 rc=metadata_getnasn(group_uri,"MemberIdentities",m,per_uri);
18 rc=metadata_getattr(per_uri,"DisplayName",per_name);
19 logCount=metadata_getnasn(per_uri,"Logins",1,log_uri);
20 IF logCount > 0 THEN DO o=1 to logCount;
21 rc=metadata_getnasn(per_uri,"Logins",o,log_uri);
22 rc=metadata_getattr(log_uri,"UserID",user_id);
23 rc=metadata_getnasn(log_uri,"Domain",1,ad_uri);
24 rc=metadata_getattr(ad_uri,"Name",ad_name);
25 OUTPUT;
26 call missing(log_uri,user_id,ad_uri,ad_name,group_name,per_name);
27 END;
28 END;
29END;
30keep group_name per_name ad_name user_id;
31RUN;
Dieses Material wird von We Are Cas "wie besehen" zur Verfügung gestellt. Es gibt keine ausdrücklichen oder stillschweigenden Garantien hinsichtlich der Marktgängigkeit oder Eignung für einen bestimmten Zweck in Bezug auf die hierin enthaltenen Materialien oder Codes. We Are Cas ist nicht verantwortlich für Fehler in diesem Material, wie es jetzt existiert oder existieren wird, noch bietet We Are Cas technischen Support dafür an.
Urheberrechtsinformationen : Copyright © 2023, SAS Institute Inc., Cary, NC, USA. All Rights Reserved. SPDX-License-Identifier: Apache-2.0