почему вход в систему запрещен в режиме cx_Oracle.SYSDBA - PullRequest
0 голосов
/ 12 июня 2018

Я пытаюсь подключиться к Oracle 12c через модуль cx_Oracle.Вход в систему с использованием следующего кода работает, когда режим не указан в методе 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

1 Ответ

0 голосов
/ 27 июня 2018

Если вы подключаетесь как пользователь 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

Различие пользователей системы и системы объясняется, например, здесь .

...