2017-08-24 1 views
0

Ich versuche, eine Verbindung zu SAP-HANA-Datenquelle über Python-Code. Ich habe es geschafft, eine Verbindung herzustellen. Ich habe einen Rohdaten-String in meinem Code wie folgt:Verbinden mit SAP HANA mit HDODBC-Treiber ohne UID und PWD in Code

db = pyodbc.connect(driver = '{HDBODBC}', UID='username', PWD='password', SERVERNODE='server:<port_no>') 

aber ich will nicht die UID und PWD Felder in meinem String. Ich habe eine DSN-Verbindung mit dem ODBC-Manager unter Windows eingerichtet. Aber ich muss noch meinen Benutzernamen und PWD einzugeben, wie folgt:

db = pyodbc.connect(DSN="MyDSN", UID='username', PWD='password') 

Wie kann ich eine Verbindung ohne meine UID und PWD in der Python-Code angezeigt wird, eingerichtet?

Antwort

0

zum Beispiel erstellen Datei an einer sicheren Ort und Last-Verbindungseinstellung (UID, PWD verschlüsseltes Passwort (heshkod)) aus dieser Datei

+0

Das könnte funktionieren. Aber weißt du irgendeinen Weg in Windows, wo ich eine vertrauenswürdige Verbindung oder SSO einrichten kann? Also würde ich UID und PWD nur einmal irgendwo eingeben müssen. – hshantanu

0

Diese Anforderung ist relativ einfach zu erfüllen. Die SAP-HANA-Client-Software (das Paket, das auch den ODBC-Treiber enthält) bietet ein Programm zum Einrichten eines sicheren Speichers für Anmeldedaten: hdbuserstore.

In my blog habe ich erklärt, wie das im Detail funktioniert.

Die Kern Schritte sind

  1. hdbuserstore die Einträge für die Betriebssystembenutzer schaffen, die die Anwendung verwenden soll.

    Syntax: hdbuserstore SET <KEY> <ENV> <USERNAME> <PASSWORD> 
    Example: hdbuserstore SET millerj "localhost:30115" JohnMiller 2wsx$RFV 
    
  2. Die hdbuserstore Schlüssel Bedürfnisse Verbindung im ODBC bezeichnet. Um dies zu tun, füllen Sie den SERVERNODE Parameter mit @<KEYNAME> anstelle der tatsächlichen Serveradresse.
    Für das obige Beispiel wäre der Wert @millerj.

Und das ist wirklich alles. Der ODBC-Treiber versucht, den bei der Verbindung angegebenen Eintrag hdbuserstore nachzuschlagen und diesen zur Verbindung mit der Datenbank zu verwenden.

Überprüfen Sie the documentation für weitere Informationen zu diesem Thema.