从python连接到Oracle数据库

时间:2019-08-21 11:58:04

标签: python-3.x oracle cx-oracle

我们正在使用cx_oracle包从python连接到oracle。 但是user_id,密码和SID详细信息在其中进行了硬编码。 我的问题是,有什么办法可以创建数据源?还是我们将如何部署此类Python脚本进行生产?

数据库位于Linux框中,而python安装在另一个Linux框中(Weblogic服务器也安装在此Linux框中)。

import cx_Oracle
con = cx_Oracle.connect('pythonhol/welcome@127.0.0.1/orcl')
print con.version

期望是:

我们可以在生产实例中部署python吗? 如果是,我们如何通过隐藏数据库凭据来连接到数据库?

1 个答案:

答案 0 :(得分:0)

使用某种“外部身份验证”,例如钱包。请参阅cx_Oracle文档https://cx-oracle.readthedocs.io/en/latest/user_guide/connection_handling.html#connecting-using-external-authentication

总结:

  • 使用mkstore创建一个包含用户名/密码凭据的钱包。
  • 将钱包复制到运行Python的计算机上
  • 确保没有坏人可以访问钱包
  • 配置Oracle Net文件以指向钱包
  • 您的脚本会像这样

    connection = cx_Oracle.connect(dsn="mynetalias", encoding="UTF-8")
    

    pool = cx_Oracle.SessionPool(externalauth=True, homogeneous=False, dsn="mynetalias",
                     encoding="UTF-8")
    pool.acquire()