Bestimmung des Sitzungsbenutzers

Dieser Code ist auch verfügbar auf: English Español Français
Schwierigkeitsgrad
Anfänger
Veröffentlicht am :
Attention : Dieser Code erfordert Administratorrechte.
Dieses Makro analysiert mehrere SAS©-Umgebungsspezifische Systemvariablen und Makrovariablen (wie `_sasjs_username`, `SYS_COMPUTE_SESSION_OWNER`, `_metaperson` und `sysuserid`), um den aktuellen Benutzer zu identifizieren. Es verwaltet die Besonderheiten von Viya Compute-Sitzungen, Stored Process-Sitzungen (wo `_metaperson` für Metadaten-Benutzer verwendet wird) und Workspace Server-Sitzungen. Es enthält auch eine Logik zur Bereinigung des Benutzernamens, indem Authentifizierungsdomänen-Erweiterungen entfernt werden, falls vorhanden. Der referenzierte Code 'DYNAMIC_ASSIGNMENT_OF_AUTHDOMAIN.sas©' illustriert eine administrative Verwaltung von Authentifizierungsdomänen basierend auf der Benutzer-ID.
Datenanalyse

Type : CREATION_INTERNE


Die Daten sind ausschließlich Systemvariablen und Makrovariablen, die von der SAS-Umgebung generiert werden und den angemeldeten Benutzer oder den Sitzungskontext widerspiegeln. Es gibt keine externe Datei- oder vorbestehende SAS-Dataset-Lesung.

1 Codeblock
MACRO mf_getuser
Erklärung :
Dieser Block definiert das Makro `mf_getuser`, das die ID des aktiven Benutzers bestimmt. Es überprüft das Vorhandensein mehrerer Makrovariablen in einer bestimmten Reihenfolge: `_sasjs_username`, `SYS_COMPUTE_SESSION_OWNER`, `_metaperson` und `sysuserid`. Je nach Umgebung (SAS Viya Compute, Stored Process oder Workspace) wird eine dieser Variablen zur Zuweisung der Benutzer-ID verwendet. Eine spezifische Logik ist enthalten, um `_metaperson` zu verarbeiten, indem Authentifizierungsdomänen-Erweiterungen entfernt und Benutzernamen mit Kommas behandelt werden. Der endgültige Wert wird vom Makro zurückgegeben.
Kopiert!
1%macro mf_getuser(
2)/*/STORE SOURCE*/;
3 %local user;
4 
5 %IF %symexist(_sasjs_username) %THEN %let user=&_sasjs_username;
6 %ELSE %IF %symexist(SYS_COMPUTE_SESSION_OWNER) %THEN %DO;
7 %let user=&SYS_COMPUTE_SESSION_OWNER;
8 %END;
9 %ELSE %IF %symexist(_metaperson) %THEN %DO;
10 %IF %LENGTH(&_metaperson)=0 %THEN %let user=&sysuserid;
11 /* sometimes SAS will add @code_sas/DYNAMIC_ASSIGNMENT_OF_AUTHDOMAIN.sas extension - remove for consistency */
12 /* but be sure to quote in case of usernames with commas */
13 %ELSE %let user=%unquote(%scan(%quote(&_metaperson),1, @));
14 %END;
15 %ELSE %let user=&sysuserid;
16 
17 %quote(&user)
18 
19%mend mf_getuser;
2 Codeblock
MACRO setenv (référencée)
Erklärung :
Dieser Block, der aus der referenzierten Datei `DYNAMIC_ASSIGNMENT_OF_AUTHDOMAIN.sas` stammt, definiert das Makro `setenv`. Dieses Makro ist ein Beispiel für ein Administrationsskript, das `sysuserid` verwendet, um eine Authentifizierungsdomäne (`access_auth`) zu bestimmen und zu definieren, wodurch es für die Zugriffsverwaltung und Systemsicherheit relevant wird. Es zeigt, wie `sysuserid` verwendet werden kann, um Umgebungsparameter an den Benutzertyp anzupassen.
Kopiert!
1/* DYNAMIC_ASSIGNMENT_OF_AUTHDOMAIN.sas */
2%put &sysuserid.;
3%macro setenv;
4%global access_auth;
5%IF %substr(&sysuserid.,1,3) = app %THEN %DO;
6 %let access_auth = DefaultAuth;
7%END;
8%ELSE %DO;
9 %let access_auth = LDAP_Auth;
10%END;
11%mend setenv;
12%setenv;
13 
14%put _all_;
3 Codeblock
MACRO _version (référencée)
Erklärung :
Dieses Makro `_version`, das im Header referenziert wird, ist dazu gedacht, zu überprüfen, ob die aktuelle SAS-Version gleich oder größer als eine angegebene Version ist. Es vergleicht die Versionsnummern unter Verwendung der Makrofunktionen `%scan` und `%eval`. Obwohl es nicht direkt vom Hauptmakro aufgerufen wird, unterstreicht seine Präsenz in den Referenzen die Bedeutung der Versionskompatibilität in der SAS-Umgebung.
Kopiert!
1%put NOTE: You have called the macro _VERSION, 2006-02-15.;
2%put NOTE: Copyright (c) 2001-2006 Rodney Sparapani;
3%put;
4 
5/*
6Author: Rodney Sparapani <rsparapa @mcw.edu>
7Created: 2001-00-00
8 
9This file is free software; you can redistribute it and/or modify
10it under the terms of the GNU General Public License as published by
11the Free Software Foundation; either version 2, or (at your option)
12any later version.
13 
14This file is distributed in the hope that it will be useful,
15but WITHOUT ANY WARRANTY; without even the implied warranty of
16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17GNU General Public License for more details.
18 
19You should have received a copy of the GNU General Public License
20along with this file; see the file COPYING. If not, write to
21the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
22*/
23 
24/* _VERSION Documentation
25 
26 Returns a one (true) if the current version of SAS is equal to or
27 greater than the version requested; zero (false) otherwise.
28
29 POSITIONAL Parameters
30
31 ARG1 version requested
32
33 Specific OPTIONAL Parameters
34
35 NOTES= default is to not display the returned value in a NOTE,
36 if set to something, then do display
37
38 VERSION=ARG1 alias
39*/
40 
41%macro _version(arg1, notes=, version=&arg1);
42 
43%local RESULT;
44%let RESULT=%eval(%scan(&sysver, 1, .)*100+0%scan(&sysver, 2, .)>=%scan(&version, 1, .)*100+0%scan(&version, 2, .));
45%IF %LENGTH(¬es) %THEN %put NOTE: _VERSION is returning the value &RESULT;
46 
47&RESULT
48 
49%mend _version;
50 
51%*VALIDATION TEST STREAM;
4 Codeblock
MACRO mm_getdetails (référencée)
Erklärung :
Dieses Makro `mm_getdetails` (referenziert durch den HELP START-Header) ist ein Verwaltungstool, das Metadatenattribute und -assoziationen für einen bestimmten URI extrahiert. Es verwendet SAS-Metadatenfunktionen wie `metadata_getnasl`, `metadata_getnasn` und `metadata_getattr`, um Informationen über Metadatenobjekte zu durchsuchen und zu sammeln und diese in Ausgabedatensätze zu speichern. Seine Rolle ist hauptsächlich mit der Verwaltung und Prüfung von Ressourcen in einer SAS-Umgebung verbunden.
Kopiert!
1/*** HELP START ***//**
2 @code_sas_json_prod_multi/mf_getuniquefileref_de.json mm_getdetails.sas
3 @code_sas/macro_with_brief_tag.sas extracts metadata attributes and associations for a particular uri
4 @code_sas_json_prod/print_macro_parameters.json [in] uri the metadata object for which to return
5 attributes / associations
6 @code_sas_json_prod/print_macro_parameters.json [in] sortoptions= Enables sorting of the output datasets, for example,
7 `SORTSEQ=LINGUISTIC`
8 @code_sas_json_prod/print_macro_parameters.json [out] outattrs= (work.attributes)
9 The dataset to create that contains the list of attributes
10 @code_sas_json_prod/print_macro_parameters.json [out] outassocs= (work.associations)
11 The dataset to contain the list of associations
12 
13 <h4> Related Files </h4>
14 @code_sas_json_prod_multi/mf_getuniquelibref.test_de.json mm_getobjects.sas
15 @code_sas_json_prod_multi/mf_getuniquelibref.test_de.json mm_gettypes.sas
16 
17**//*** HELP END ***/
18 
19%macro mm_getdetails(uri
20 ,outattrs=work.attributes
21 ,outassocs=work.associations
22 ,sortoptions=
23)/*/STORE SOURCE*/;
24 
25DATA &outassocs;
26 keep assoc assocuri name;
27 LENGTH assoc assocuri name $256;
28 call missing(of _all_);
29 rc1=1;n1=1;
30 DO while(rc1>0);
31 /* Walk through all possible associations of this object. */
32 rc1=metadata_getnasl("&uri",n1,assoc);
33 rc2=1;n2=1;
34 DO while(rc2>0);
35 /* Walk through all the associations on this machine object. */
36 rc2=metadata_getnasn("&uri",trim(assoc),n2,assocuri);
37 IF (rc2>0) THEN DO;
38 rc3=metadata_getattr(assocuri,"Name",name);
39 OUTPUT;
40 END;
41 call missing(name,assocuri);
42 n2+1;
43 END;
44 n1+1;
45 END;
46RUN;
47PROC SORT &sortoptions;
48 BY assoc name;
49RUN;
50 
51DATA &outattrs;
52 keep type name value;
53 LENGTH type $4 name $256 value $32767;
54 rc1=1;n1=1;type='Prop';name='';value='';
55 DO while(rc1>0);
56 rc1=metadata_getnprp("&uri",n1,name,value);
57 IF rc1>0 THEN OUTPUT;
58 n1+1;
59 END;
60 rc1=1;n1=1;type='Attr';
61 DO while(rc1>0);
62 rc1=metadata_getnatr("&uri",n1,name,value);
63 IF rc1>0 THEN OUTPUT;
64 n1+1;
65 END;
66RUN;
67PROC SORT &sortoptions;
68 BY type name;
69RUN;
70 
71%mend mm_getdetails;
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 : Allan Bowe (im HELP START-Header erwähnt). Ebenfalls Rodney Sparapani (c) 2001-2006 (für _version.sas) und HMS Analytical Software GmbH (für macro_without_brief_tag.sas) sind referenzierte Codequellen, die die Entwicklung oder Logik der mit der Benutzerverwaltung verbundenen Makros beeinflusst haben könnten.


Zugehörige Dokumentation

Aucune documentation spécifique pour cette catégorie.