Search code examples
pythonodbcpyodbchana

Connect to SAP HANA by using HDODBC driver without UID and PWD in code


I am trying to connect to SAP HANA data source via Python code. I did manage to establish a connection. I have a raw data string in my code as follows:

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

However, I do not want the UID and PWD fields in my string. I did set up a DSN connection using the ODBC manager on Windows. But, I still need to enter my username and pwd as follows:

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

How can I set up a connection without my UID and PWD being displayed in the python code?


Solution

  • I have been looking for the same option to use hdbuserstore key to be used with python for connecting to SAP HANA. Looks like HDB client hdbcli has that option added now.

    The user that is running the script needs to have the PYTHON_PATH set to the location of the hdbclient or in the script you can have the path set.

    from hdbcli import dbapi
    
    conn = dbapi.connect(key='hdbuserstore key',CONNECTTIMEOUT=5)
    

    conn.isconnected() will return True if the connection is successful.

    hope this is helpful for someone!