使用python中的cx_Oracle以sys用户身份连接到本地数据库

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

[尝试使用Python cx_Oracle连接到Oracle数据库。在sqlplus中,当我连接到本地数据库时,确实要使用“ sqlplus / as sysdba”。我正在尝试在Python中使用没有密码的相同方法,但是得到ORA-01017或ORA-12541

tns_entry=cx_Oracle.makedsn('localhost',1521,'db1')

>>> conn = cx_Oracle.connect(mode = cx_Oracle.SYSDBA,dsn=tns_entry)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-12541: TNS:no listener

>>> conn = cx_Oracle.connect("/",mode = cx_Oracle.SYSDBA,dsn=tns_entry)

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-12541: TNS:no listener
>>> conn = cx_Oracle.connect(mode = cx_Oracle.SYSDBA,dsn="TNS SERVICE")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
cx_Oracle.DatabaseError: ORA-01017: invalid username/password; logon denied

我要去哪里错了?请提供您的输入。谢谢

python cx-oracle
1个回答
0
投票

documentation中所述,您可以使用下面的代码并尝试分配用户名,并且如果您使用的密码为空,则如下所示。

user = "sys"
pass = ""
connection = cx_Oracle.connect(user, pass, "dbhost.example.com/orclpdb1",
        mode=cx_Oracle.SYSDBA, encoding="UTF-8")
© www.soinside.com 2019 - 2024. All rights reserved.