为什么在 cx_Oracle.SYSDBA 模式下拒绝系统登录



我正在尝试通过cx_Oracle模块连接到Oracle 12c。 使用以下代码登录适用于 cx_Oracle.connect 方法中未提及模式的情况

import cx_Oracle                                                                
ip = 'ip'                                                             
port='1521'                                                                    
SID='orcl'                                                                     
dsn_tns = cx_Oracle.makedsn(ip, port, SID)                                     
db = cx_Oracle.connect('system', 'password', dsn_tns)

但对于以下方式,它显示 cx_Oracle.SYSDBA 模式的无效登录错误。

db = cx_Oracle.connect('system', 'password', dsn_tns, cx_Oracle.SYSDBA) 

错误:

cx_Oracle.DatabaseError: ORA-01017: invalid username/password; logon denied

我在这里错过了什么?? 凭据是相同的。 我尝试按如下方式手动登录并成功

>sqlplus system/password as sysdba

如果以用户sys身份连接,则需要使用cx_Oracle.SYSDBA模式:

conn = cx_Oracle.connect('sys', 'password', dsn_tns, cx_Oracle.SYSDBA)
ok
conn = cx_Oracle.connect('sys', 'password', dsn_tns)
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

但是,如果以用户系统身份连接,则不得使用cx_Oracle.SYSDBA模式:

conn = cx_Oracle.connect('system', 'password', dsn_tns)
ok
conn = cx_Oracle.connect('system', 'password', dsn_tns, cx_Oracle.SYSDBA)
ORA-01017: invalid username/password; logon denied

例如,用户系统和系统的区别在这里解释。

相关内容

最新更新