为什么在 cx_Oracle.SYSDBA 模式下系统登录被拒绝
why system login is denied in cx_Oracle.SYSDBA mode
我正在尝试通过 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
但是,如果您作为用户 system 连接,则不能使用 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
用户sys和system的区别举例说明here。
我正在尝试通过 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
但是,如果您作为用户 system 连接,则不能使用 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
用户sys和system的区别举例说明here。