python验证Oracle用户名/密码而不使用cx_Oracle

时间:2011-04-06 11:54:13

标签: python oracle

我需要验证用户提供的oracle帐户信息数据是否正确。我试图使用cx_Oracle,但我服务器上的OCI.DLL版本(我无法升级)似乎不是cx_Oracle的正确版本。

如何在不使用cx_Oracle的情况下验证用户名/密码?

3 个答案:

答案 0 :(得分:3)

如果你无法编译cx_Oracle,你有两个选择:

答案 1 :(得分:1)

问题很可能是cx_Oracle模块的版本。

安装模块时必须非常小心,为oracle安装选择合适的版本。

http://cx-oracle.sourceforge.net/

如果您无法使用cx_Oracle连接到数据库,则可能很难检查信息的准确性

如果您安装了sql * plus,您可能会尝试使用子进程模块启动进程并检查是否可以连接,但在我看来,您可能更适合修复cx_Oracle < / p>

编辑:使用子流程模块。

以下是如何使用子进程执行此操作:

import subprocess

def is_login_valid(user, password, instance):
  output = subprocess.check_output("sqlplus %s/%s@%s" %(user, password, instance))
  return (output.find("ORA-01017") == -1 and output.find("ORA-12154") == -1)

答案 2 :(得分:1)

如果您有权访问用户名&amp;密码哈希通过一些不需要cx_Oracle的替代方法,只需要验证密码哈希值,Passlib python库可以提供帮助。它支持oracle10goracle11g哈希格式。