使用不带UID和PWD的HDODBC驱动程序连接到SAP HANA代码

使用不带UID和PWD的HDODBC驱动程序连接到SAP HANA代码

问题描述:

我试图通过Python代码连接到SAP HANA数据源。 我确实设法建立连接。我有一个原始数据串在我的代码如下:使用不带UID和PWD的HDODBC驱动程序连接到SAP HANA代码

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

不过,我不希望在我的字符串中的UID和PWD领域。 我在Windows上使用ODBC管理器设置了DSN连接。但是,我仍然需要输入自己的用户名和pwd如下:

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

我怎样才能建立没有我的UID和PWD连接显示在Python代码?

例如在从该文件

+0

这可能工作。但是您知道Windows中可以设置可信连接或SSO的任何方式吗?所以我不得不在某处输入UID和PWD一次。 – hshantanu

此要求的安全位置和负载连接设置(UID,PWD加密的密码(heshkod))创建文件相对容易满足。 SAP HANA客户端软件(也包含ODBC驱动程序的软件包)提供了一个程序来设置登录数据的安全存储:hdbuserstore

my blog我解释了这是如何工作的细节。

的核心步骤是

  1. 创建应使用该应用程序的操作系统用户的hdbuserstore条目。

    Syntax: hdbuserstore SET <KEY> <ENV> <USERNAME> <PASSWORD> 
    Example: hdbuserstore SET millerj "localhost:30115" JohnMiller 2wsx$RFV 
    
  2. hdbuserstore键需要在ODBC连接被参考。 为此,请填写SERVERNODE参数@<KEYNAME>而不是实际的服务器地址。
    对于上面的示例,值将是@millerj

而这就是全部。 ODBC驱动程序将尝试查找连接时提供的hdbuserstore条目,并使用它连接到数据库。

检查the documentation了解更多信息。