从非sidadm用户运行SAP HANA dbapi客户端

2020-09-18 15:15发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有我的python程序,它将使用python dbapi连接并获取结果:

import dbapi conn = dbapi.connect('linux',31515,'SYSTEM','*****')

cur = conn.cursor()

query ="从GRANTED_PRIVILEGES中选择GRANTEE,GRANTEE_TYPE,PRIVILEGE"

ret = cur.execute(查询)

ret = cur.fetchall()

我正在验证是否可以从非sidadm用户运行它。

从非sidadm用户运行它是否有效? 该用户应该设置HANA env吗?

应遵循的一般流程是什么?

启用ssl时遇到麻烦。

conn = dbapi.connect('linux.site',30015,'SYSTEM','*****',encrypt ='True')

如果我使用-加载环境变量,它将起作用

"。/usr/sap//home/.sapenv.sh"。

这是规范吗?

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我有我的python程序,它将使用python dbapi连接并获取结果:

import dbapi conn = dbapi.connect('linux',31515,'SYSTEM','*****')

cur = conn.cursor()

query ="从GRANTED_PRIVILEGES中选择GRANTEE,GRANTEE_TYPE,PRIVILEGE"

ret = cur.execute(查询)

ret = cur.fetchall()

我正在验证是否可以从非sidadm用户运行它。

从非sidadm用户运行它是否有效? 该用户应该设置HANA env吗?

应遵循的一般流程是什么?

启用ssl时遇到麻烦。

conn = dbapi.connect('linux.site',30015,'SYSTEM','*****',encrypt ='True')

如果我使用-加载环境变量,它将起作用

"。/usr/sap//home/.sapenv.sh"。

这是规范吗?

付费偷看设置
发送
3条回答
代楠1984
1楼-- · 2020-09-18 15:57

这些是我遵循的步骤。

我已将步骤放在从sidadm运行的脚本中-

#/bin/bash
 #在客户端目录中进行所有活动,以免我们意外删除任何证书-从sidadm运行此证书。
 设置-x
 rm -rf ./客户端
 mkdir客户端
 cd客户端
 #复制服务器证书并提取公钥/私钥
 cp $ SECUDIR/sapsrv.pse ./
 sapgenpse export_own_cert -p sapsrv.pse> serv.cer
 sapgenpse export_p12 -p sapsrv.pse SID_priv.p12 << EOF




 紧急行动
 openssl pkcs12 -nodes -nocerts -in SID_priv.p12 -out serv.key
 #创建客户端证书和证书请求
 mv $ SECUDIR/sapcli.pse ./sapcli.pse_bkp
 sapgenpse gen_pse -p sapcli.pse -r sapcli.req << EOF




 cn =客户
 紧急行动
 cp $ SECUDIR/sapcli.pse ./
 #现在签署客户证书
 openssl x509 -req -days 365 -in sapcli.req -sha1-扩展名usr_cert -CA serv.cer -CAkey serv.key -CAcreateserial -out sapcli.crt
 猫服务>> sapcli.crt
 #将此证书导入到SAP HANA
 sapgenpse import_own_cert -p sapcli.pse -c sapcli.crt
 

不同的场景:

1。 在使用sidadm进行连接时发布此内容:

效果很好。

2。 使用root连接:

遵循以下步骤发布上述脚本。

将文件sapcli.pse复制到/root/pse/

b。 将$ SECUDIR设置为指向/root/pse/

c。 将/usr/sap/SID/HDB00/exe:添加到LD_LIBRARY_PATH。

添加步骤b和c后,它可以正常工作。

3。 使用普通用户时-mashood:

将文件sapcli.pse复制到/home/mashood/pse/

b。 将$ SECUDIR设置为指向/home/mashood/pse/

c。 将/usr/sap/SID/HDB00/exe:添加到LD_LIBRARY_PATH。

运行程序时出现错误:

 python dbapi_test.py
 追溯(最近一次通话):
 <模块>中第9行的文件" dbapi_test.py"
 conn = dbapi.connect('linux.site',30015,'SYSTEM','*******',encrypt ='True')#,encrypt ='True')
 __init__中的文件"/usr/sap/hdbclient/hdbcli/dbapi.py",第82行
 self .__ connection = pyhdbcli.connect("%s:%d"%(地址,端口)," HDB",用户,密码,self .__ properties)
 dbapi.Error:(-10709,"连接失败(RTE:[300010]无法创建SSL上下文:找不到SSL密钥存储:/home/mashood/.ssl/key.pem(linux.site:30015))")
  

我认为这是目录权限的东西,并将用户添加到" sapsys"组-此后工作正常。

1。 步骤正确吗?

2。 从用户成年通过ssl获得dbapi连接的推荐方法是什么。

此致

Mashood

95年老男孩
2楼-- · 2020-09-18 15:38

您遇到了哪些"麻烦"? 最好在问题中包含错误消息。

SAP小菜
3楼-- · 2020-09-18 15:44

嗨,

我遇到了同样的错误。 您找到了解决方案吗? 如何使用SSL连接到HANA实例?

亲切的问候,

Sarthak

一周热门 更多>