LesezeichenAbonnierenRSS-Feed abonnieren
calina
Calcite | Level 5

Hallo zusammen,

 

ein Nutzer von SAS 9.4 TS1M6 unter Linux (Server, 64 bit) hat Probleme mit der Libname-Anweisung, die auf eine MySQL-Datenbank zugreifen sollte.

Seine Libname-Anweisung lautet:

Libname myd mysql user='uid@xx.uni-xxxx.de' password=XXXXXXXXXX database=bioxxx server='dbname-db.xxx.de' port=111;

 

Die Fehlermeldung lautet:

Error trying to establish connection: Access denies vor user 'uid@xx.uni-xxx.de'@'dbname-sas.xxx...'

 

Meine Vermutung, dass die Ursache hierbei in der Authentifizierung über das Active Directory liegt, hat sich bestätigt, denn mit einem lokalen User auf der Datenbank funktioniert der Zugriff.

 

Hilft mir die Option Authdomain=? Und wenn ja, welches Argument muss ist dabei eingeben? Meine bisherigen Versuche sind leider gescheitert.

Danke im Voraus!

 

Carina Ortseifen

4 ANTWORTEN 4
andreas_lds
Jade | Level 19

Mit Authdomain kann man den lokalen Benutzer und sein Passwort verstecken. Ich hoffe, dass ich mich vollständig erinnere ...

 

 

In den Metadaten eine Gruppe anlegen, alle Personen als Mitglieder aufnehmen und den lokalen DB-Benutzer im Reiter "Konten" eintragen und dabei nicht DefaultAuth sondern eine neue Domäne angeben (der Name des DB-Servers bietet sich vielleicht an oder "narf"). Danach in der Verbindung zur DB im Reiter "Optionen" als Authentifizierungstyp "Benutzer/Passwort" einstellen und die eben erstellte Auth-Domäne auswählen. In der Libname-Anweisung reicht dann (anstelle von Benutzername und Passwort) authdomain= 'narf' angeben. Fertig. Hoffe ich.

 

mfg

Andreas

 

PS: Vielleicht entfernst du die vollständigen Servernamen aus deinem Post.

calina
Calcite | Level 5

Hallo Andreas,

 

danke für deine Hinweise, zu denen ich allerdings eine Frage habe:

Was meinst du mit Metadaten? Bezieht sich das auf SAS oder MySQL?
Wir nutzen kein Viya sondern einfach SAS Foundation.

 

 

 

andreas_lds
Jade | Level 19

Metadaten bezieht sich auf SAS, dachte ihr hättet eine SAS-BI-Umgebung.

FK1
Lapis Lazuli | Level 10 FK1
Lapis Lazuli | Level 10

Hallo Frau Ortseifen,

der aufgezeigte Weg von @andreas_lds hat meiner Meinung nach den Nachteil, dass man auf der Datenbank nicht mehr rückverfolgen kann, welcher End-User genau die Last auf der Datenbank verursacht hat, da alle End-User, welche in den SAS-Metadaten der Gruppe zugeordnet sind, den selben (technischen) Datenbankuser nutzen.

 

Konkret:

nehmen wir an, dass die drei SAS-User "Max", "Mila" und "Myrte" in der SAS-Gruppe "MySQL" sind. Nun wurde wie von Andreas beschrieben eine Authentifizierungsdomäne definiert ,bspw. namens "AuthMySQL" und dieser "MySQL"-SAS-Gruppe zugeordnet, d.h. es wurde für alle Mitglieder dieser Gruppe ein geteilter MYSQL-DatenbankUser (inkl. Passwort) hinterlegt. (bspw. "sas2mysql mit Passwort "1234")

 

Wenn nun bspw. "Mila" das libname statement zur Verbindung zur MySQL-Datenban ausführt:

 

Libname myd mysql AUTHDOMAIN="AuthMySQL" database=bioxxx server='dbname-db.xxx.de' port=111;

, wird über die in den Metadaten existierende Authentifizierungsdomäne der MySQL-User + Passwort nachgeschlagen und damit gegen die MySQL-Datenbank authentifiziert.

 

Das heißt aus Sicht der Datenbank hat sich nicht "Mila" an der Datenbank angemeldet, sondern "sas2mysql"!

Analog gilt dies auch für "Max" und "Myrte".

 

Es gibt bspw. rechtliche Vorschriften in verschiedenen Wirtschaftsbranchen, wo so etwas strengstens verboten ist, da damit nicht mehr rückvervolgt werden kann, wer de facto der eigentliche Urheber einer Query ist.