SQL> show user
USER is "SYS"
SQL> alter user sys account lock;
User altered.
SQL> select account_status from dba_users where username = 'SYS';
ACCOUNT_STATUS
--------------------------------
LOCKED
SQL> conn / as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> connect sys@ORCL as sysdba
Enter password:
Connected.
SQL> show user
USER is "SYS"
SQL> select account_status from dba_users where username = 'SYS';
ACCOUNT_STATUS
--------------------------------
LOCKED
SYS您可以通过设置remote_login_passwordfile来禁用远程登录none,因此只允许本地登录。例如,这将阻止使用 Data Guard。
您也可以'/ as sysdba'通过设置SQLNET.AUTHENTICATION_SERVICES=(none)来防止sqlnet.ora。
锁定它们(
SYS
和SYSTEM
)。你不应该每天都使用它们,什么都不会破坏。在日常工作中,您应该使用具有
SYSDBA
或的命名用户帐户SYSOPER
。Tom Kyte 建议这样做,因此如果出现问题,您总是可以责怪他 :-)
SYSTEM
可以毫无困难地锁定。SYS
虽然是不同的。你不能锁定它,即使你能,你也不能。SYS
您可以通过设置remote_login_passwordfile
来禁用远程登录none
,因此只允许本地登录。例如,这将阻止使用 Data Guard。您也可以
'/ as sysdba'
通过设置SQLNET.AUTHENTICATION_SERVICES=(none)
来防止sqlnet.ora
。最后,您可以通过将上述内容与从
$ORACLE_HOME/dbs
. 这样,您将无法登录SYSDBA
或根本无法登录SYSOPER
。但即便如此,SYS
用户也不会被真正锁定,只是您无法通过身份验证。如果您重新创建密码文件,您将能够再次进入。