2015-07-30 4 views
5

Wenn ich in einem SAS-Protokoll suchen, gibt es 4 verschiedene Variablen Benutzer greifen:Benutzer des gespeicherten Prozesses, welche Variable zu verwenden?

_METAPERSON 
_METAUSER 
_SECUREUSERNAME 
_USERNAME 

Wenn ich das Protokoll aktivieren, werden alle vier Variablen den gleichen Wert haben, wenn ich den Prozess auszuführen. Also habe ich einen Prozess erstellt, der _Metauser für einen bestimmten Benutzer überprüft hat, so dass nur die Benutzer, die ich wollte, etwas tun könnten. Aber ein Kollege von mir hatte das Problem, dass in der Variable nicht der Benutzername gespeichert war, als er den Prozess aufgerufen hat, sondern username @ Context. In den anderen 3 Variablen war nur der Benutzername für ihn gespeichert, also kann ich vielleicht zu einem von ihnen wechseln. Ich kann Metauser nicht verwenden, da es für manche Personen einen @Context nach dem Benutzernamen geben könnte.

Nein, ich habe das Problem, welche Variable zu verwenden? Was ist der Unterschied zwischen den 4 Variablen? Was zu verwenden, um sicher zu sein, dass ich nur (und immer) den reinen Benutzernamen bekomme, egal wo und von welchem ​​Programm/Version der Benutzer den Prozess aufruft?

  • Im Moment benutze ich Sas 9.3 und laufe mit dem Prozess über webservice
  • ich jetzt SECUREUSERNAME geschaltet, aber ich bin nicht sicher, ob dies Probleme für andere Benutzer machen kann, im Moment nur 3 Arbeit dieser Prozess, aber es wird viel mehr bald
  • Unser Berechtigungskonzept auf Metadaten basieren, so dass ich denke, vielleicht i _Metaperson ...

Antwort

4

Der _SECUREUSERNAME verwenden sollte Makrovariable wird erstellt, wenn der Anwendungsserver einen gespeicherten Prozess ausführt. Der Wert von _SECUREUSERNAME enthält die Client-Identität, und dieser Wert wird in die Makrovariable _USERNAME geschrieben, wenn _USERNAME nicht bereits einen Wert enthält. In den meisten Fällen wird der Wert von _SECUREUSERNAME das gleiche sein wie _username

_username Gibt den Wert für die Benutzername von Web-Client-Authentifizierung erhalten.

_METAPERSON Gibt die Person Metadaten Namen, die mit dem _METAUSER Login Variable zugeordnet ist. Der Wert dieser Variablen kann UNBEKANNT sein. Diese Variable kann vom Client nicht geändert werden.

_METAUSER Gibt den Anmeldebenutzernamen an, der für die Verbindung mit dem Metadatenserver verwendet wird. Diese Variable kann vom Client nicht geändert werden.

Es gibt keine einfache Antwort auf Ihre Frage, weil es von Ihrer Einrichtung abhängt. Müssen sich Ihre Benutzer mit Metaserver anmelden? Wird auf Ihren Code immer mit dem WebService zugegriffen? Benutzer-IDs, was sind sie, sind sie ID von AD? Ist Single-Sign-On (SSO) aktiviert? Wie sind die IDs auf SAS konfiguriert? Verwenden Benutzer vertrauenswürdige Benutzer, um eine Verbindung herzustellen?

Grüße, Vasilij

+0

Standard Case greift auf SAS Stored Process Webservice über SSO zu. Es kann aber auch eine manuelle Authentifizierung auf dem Webservice (nach Timeout oder zunächst für einen User) und in sehr seltenen Fällen auch laufenden Prozessen in EG geben. Mein Kollege verwendet SSO wie ich, auch hat er exakt die gleichen Metadaten-Benutzereinstellungen, daher ist es seltsam, dass der @Context für Metauser hinzugefügt wird. Er arbeitet in einer anderen Abteilung, also muss es etwas mit den User-Einstellungen zu tun haben, aber dazu kann er nichts sagen ... – kl78

+0

Ich werde _SECUREUSERNAME jetzt benutzen, weil es zu funktionieren scheint, habe ich deine Antwort schon angenommen, aber vielleicht kannst du etwas über meinen letzten Kommentar hinzufügen – kl78

+0

Etwas zu klären (hat mich heute abgeholt) - _METAUSER ist NICHT der SAS-Login-Benutzername, sondern der OS-Login-Benutzername. –

1

ich _METAUSER bin mit. Nun sind unsere Systeme mit SSO eingerichtet, so dass der Benutzername immer ohne das "@" ist. Ich habe es auch ohne SSO benutzt, aber dann musste ich% scan (& _METAUSER, 1, @) benutzen, um den @ context Teil wegzuziehen.

+0

Hm, mein Kollege benutzt SSO und bekommt trotzdem den @ -Teil (nur für Metauser). Die Scan-Option wäre ein Workaround, aber ich würde lieber ohne zusätzliche Funktionen arbeiten. – kl78

+0

Mir ist aufgefallen, dass manchmal der @ -Teil nach einer Passwortänderung erscheint. –

1

Vom Testen in einer Stored Process-Sitzung 9.2 (Fenster) -Umgebung mit SSO:

OS-Benutzernamen (in meinem Fall, meine Fenster ID)

  • _METAUSER (bei OS Login Anmeldung bei, zB mit SSO finden @Vasilij Nevlev Kommentar in akzeptierte Antwort)
  • _SECUREUSERNAME

SAS Benutzername (in Metadaten)

  • _METAPERSON - Gibt den Personenmetadatennamen an, der der _METAUSER-Login-Variablen zugeordnet ist. Nicht sicher, wie dies kann unbekannt sein, wie SMC wird nicht zulassen, dass Sie einen leeren Wert eingeben .. (anonymer Webbenutzer ist Webanon)
  • _USERNAME - definitiv der Benutzername, wie Sie dies zusammen mit _password in der URL verwenden können, um zu umgehen der SAS-Anmeldebildschirm.
+1

Gut zu wissen über den Login via URL. +1. Übrigens erhalten Sie andere Ergebnisse, wenn der gespeicherte Prozess auf dem Workspace-Server ausgeführt wird. Es hat mich bekämpft, als ich die Ausführung zum Workspace-Server gezwungen habe. Sicherer Benutzername wird für alle Benutzer "(Prozess)". –

Verwandte Themen