本文实验基于以下Oracle数据库版本:
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL>
默认情况下,属于dba组的OS用户,不用输入密码或者输入任何密码都可以sysdba的身份登陆Oracle数据库,如下:
sqlplus / as sysdba
sqlplus sys/anypassword as sysdba
但有时我们需要将OS用户和sys用户分离出来,即属于dba组的OS用户亦需要sys密码才能以sysdba权限登陆数据库,那么我们可以通过如下3步来完成:
1. 禁用操作系统验证
$ cd $TNS_ADMIN
$ echo 'SQLNET.AUTHENTICATION_SERVICES= (NONE)' >> sqlnet.ora
2. 收回sqlnet.ora文件写权限
# chmod 644 $TNS_ADMIN/sqlnet.ora
# chown root.root $TNS_ADMIN/sqlnet.ora
3. 创建sys口令文件,启用s
SQL> select * from v$version;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
PL/SQL Release 11.1.0.7.0 - Production
CORE 11.1.0.7.0 Production
TNS for Linux: Version 11.1.0.7.0 - Production
NLSRTL Version 11.1.0.7.0 - Production
SQL>
默认情况下,属于dba组的OS用户,不用输入密码或者输入任何密码都可以sysdba的身份登陆Oracle数据库,如下:
sqlplus / as sysdba
sqlplus sys/anypassword as sysdba
但有时我们需要将OS用户和sys用户分离出来,即属于dba组的OS用户亦需要sys密码才能以sysdba权限登陆数据库,那么我们可以通过如下3步来完成:
1. 禁用操作系统验证
$ cd $TNS_ADMIN
$ echo 'SQLNET.AUTHENTICATION_SERVICES= (NONE)' >> sqlnet.ora
2. 收回sqlnet.ora文件写权限
# chmod 644 $TNS_ADMIN/sqlnet.ora
# chown root.root $TNS_ADMIN/sqlnet.ora
3. 创建sys口令文件,启用s