X.509:通过 Python HDBCLI 连接 SAP HANA 时没有密钥存储或 PEM

问题描述 投票:0回答:2

我正在编写一个简单的脚本来连接 SAP HANA,但我遇到了一个奇怪的错误。希望有人给我一些建议。 这是我的代码:

from hdbcli import dbapi
import json

with open('./configure.json') as config_file:
    config = json.load(config_file)
    address = config["host"]
    port = config["port"]
    username = config["user"]
    password = config["password"]

print(address, port, username, password)

connection = dbapi.connect(
    address=address,
    port=port,
    username=username,
    password=password,
)
cursor = connection.cursor()

错误信息是:

F:\Scripts\venv\Scripts\python.exe F:\Scripts\main.py 
172.17.0.44 30115 XXXXXX XXXXXX_2017
Traceback (most recent call last):
File "F:\Scripts\main.py", line 13, in <module>
  connection = dbapi.connect(
hdbcli.dbapi.Error: (-10709, 'Connection failed (RTE:[-1] X.509: No key store
or PEM provided (0.0.0.0:10976 -> 172.17.0.44:30115))')

Process finished with exit code 1

我想我可能需要在我的电脑上安装一些密钥,但我不知道该怎么做。

如有任何帮助,我们将不胜感激。

enter image description here

我看了官方文档,但没有得到解决。希望大家给点建议。

我的电脑操作系统是Windows 11,我的python版本是3.10.11

python hana
2个回答
0
投票

我已经在上述问题上取得了进展。我在计算机上安装了 sap hana 客户端,然后错误就消失了。 (sap hana 客户端有 [email protected],我将 python 版本降级到 3.8.6 以适应它。) 但我又发生了一个错误。

F:\Scripts\venv\Scripts\python.exe F:\Scripts\main.py 
Traceback (most recent call last):
  File "F:\Scripts\main.py", line 11, in <module>
    connection = dbapi.connect(
hdbcli.dbapi.Error: (-10709, 'Connection failed (RTE:[0]  172.17.0.44:30115)')

Process finished with exit code 1

我可以通过我的计算机的 hana 客户端连接到此 hana 实例。所以我确信网络没问题。希望还有其他可能的原因。


0
投票

太蠢了!!! dbapi.connect() 方法需要一个变量“user”,而不是“username”。但是当我写“user”时,pycharm提醒我意外的参数,连接正常;当我写“用户名”时,pycharm看起来一切正常,连接抛出错误。

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.