Oracle 10g SYS用户认证方式总结
Oracle 10g SYS用户认证方式总结
OS: Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
uname -r: 2.6.9-22.EL
DB: Oracle Database 10g Release 10.2.0.1.0
第一种情况:初始化参数 remote_login_passwordfile 设置为 EXCLUSIVE
1. 本地SYS用户登录的情况:
在 $ORACLE_HOME/network/admin/ 目录下查看 sqlnet.ora,默认为:
NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
此时本地sys用户的认证方式为系统认证,即可以 sqlplus / as sysdba 方式登录,不检查口令文件。
如果在sqlnet.ora 中额外添加:
SQLNET.AUTHENTICATION_SERVICES= (NTS) 或 SQLNET.AUTHENTICATION_SERVICES= (NONE)
则本地SYS用户必须以 sqlplus sys/123456 as sysdba 方式登录。
此时本地sys用户认证方式为口令认证,需要检查口令文件,口令文件格式为 orapwSID。如口令文件丢失,则报ORA-01031。
重建口令文件的方法: orapwd file=orapworcl password=123456 entries=2
2. 远程SYS用户登录的情况:
远程SYS用户登录,一律以 sqlplus sys/123456@orcl as sysdba 的方式登录(无论服务器端sqlnet.ora中如何设置)。
若远程SYS用户登录时报:ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
此时检查 $ORACLE_HOME/network/admin/ 目录下的listener.ora 文件,根据以下内容进行修改即可。
修改完成后,需要重启下lsnrctl 服务:lsnrctl reload
第二种情况:初始化参数 remote_login_passwordfile 设置为 NONE
sqlnet.ora 中为默认设置,即:NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
此时,远程SYS用户无法登录。