- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
I need to obtain the user id and if possible the user name and e-mail address of the user who is running a job in Enterprise Guide via a workspace server.
At this time, I am considering using proc metaoperate or a call to the macros dictionary table. Do I have anyother options and what is the recommended best practice?
Many Thanks,
JDM
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
For any SAS EG session you can do this:
data ids;
length name $ 16 purpose $ 40;
label name="Value Name" purpose="Purpose";
infile datalines dsd;
input name purpose;
datalines;
SYSUSERID, SAS session host account
_CLIENTUSERID, Windows user ID in SAS EG
_CLIENTUSERNAME, Windows user name in SAS EG
_METAUSER, SAS metadata user ID
run;
proc sql;
select t1.name,
t2.value,
t1.purpose
from work.ids t1
inner join sashelp.vmacro t2 on (t1.name = t2.name);
quit;
You can also query SAS metadata like so:
options metaserver=sasmetadata metauser="sasadm@saspw" metapass="password";
%mduextr(libref=work);
This gives you all users and their details defined in the SAS metadata - do you want a snapshot of all EG users who are currently connecting to a SAS workspace server, or just all users who are defined in metadata?
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
Great idea on the %mduextr macro!!! It kills me to embedded the metapass in open code though.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
You could encrypt it then:
proc pwencode in='password';
run;
Then paste the output from the procedure into your metapass string. This does not stop anyone using the encrypted password in code but would prevent them using it in a user tool like SAS Management Console.
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
If you are using SAS Enterprise Guide and querying metadata "as you", you don't need the META* options (including the password). But if you are needing to use a different identity (such as sasadm@saspw), then you do need it. See this article:
Five strategies to eliminate passwords from your SAS programs - The SAS Dummy
Chris
- Mark as New
- Bookmark
- Subscribe
- Mute
- RSS Feed
- Permalink
- Report Inappropriate Content
That's an excellent tip Chris!
%mduextr(libref=work); works fine without the metadata credentials when run in EG. I had just assumed credentials were required because it was in an example on SAS Support.