使用不带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代码?
答
例如在从该文件
答
此要求的安全位置和负载连接设置(UID,PWD加密的密码(heshkod))创建文件相对容易满足。 SAP HANA客户端软件(也包含ODBC驱动程序的软件包)提供了一个程序来设置登录数据的安全存储:hdbuserstore
。
在my blog我解释了这是如何工作的细节。
的核心步骤是
-
创建应使用该应用程序的操作系统用户的
hdbuserstore
条目。Syntax: hdbuserstore SET <KEY> <ENV> <USERNAME> <PASSWORD> Example: hdbuserstore SET millerj "localhost:30115" JohnMiller 2wsx$RFV
的
hdbuserstore
键需要在ODBC连接被参考。 为此,请填写SERVERNODE
参数@<KEYNAME>
而不是实际的服务器地址。
对于上面的示例,值将是@millerj
。
而这就是全部。 ODBC驱动程序将尝试查找连接时提供的hdbuserstore
条目,并使用它连接到数据库。
检查the documentation了解更多信息。
这可能工作。但是您知道Windows中可以设置可信连接或SSO的任何方式吗?所以我不得不在某处输入UID和PWD一次。 – hshantanu