Вы не можете блокировать/запрещать учетные записи SYSDBA (например, SYS), вследствие того, что они не проходят проверку подлинности к базе данных таким же образом. Вот немного теста, я работал на обычном пользователе, что я предоставил SYSDBA, затем заблокировал учетную запись. Пользователь может все еще войти как SYSDBA, просто не как обычный пользователь:
C:\>sqlplus test@testdb as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 26 10:14:42 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter password:
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> quit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
C:\>sqlplus test@testdb
SQL*Plus: Release 10.2.0.1.0 - Production on Mon Apr 26 10:23:43 2010
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Enter password:
ERROR:
ORA-28000: the account is locked
Enter user-name:
C:\>
Конечно, если я могу войти как пользователь SYSDBA, затем я могу просто разблокировать свою учетную запись и войти как обычный пользователь снова.
Я не уверен, почему Вы на самом деле хотели бы сделать это. Это не походит на хорошую идею. Если Вы могли бы на самом деле заблокировать учетные записи SYSDBA, Вы могли бы представить свою недоступную базу данных. Кроме SYS и СИСТЕМЫ, все учетные записи, созданные Oracle, когда база данных создается, заблокированы по умолчанию так или иначе. Что Вы пытаетесь выполнить?
Править:
Вот единственный сценарий, в котором мог быть заблокирован SYSDBA's:
Этот сценарий означает, что Вы в значительной степени завинчены так или иначе. Это также предполагает, что Вы не можете изменить sqlnet.ora файл, где authentication_services параметр определяется, еще Вы могли задержать его к NTS для разрешения аутентификации ОС (принимает окна).
Вы можете пострадать от повреждения файловой системы. Запустите chkdsk / F <ваш диск>
, чтобы проверить возможные ошибки. Возможно, вам придется перезагрузить систему, если <ваш диск>
является системным диском.