配置sys远程登陆--ORACLE SYS用户远程登录失败 ORA-01031
今天在管理oracle的时候发现一个很奇怪的问题,通过sqlplus sys/password as sydba 或者 sqlplus / as sysdba均可以登陆。
oracle本地服务器登陆,可以登陆
[oracle@orac ~]$ sqlplus sys/sys as sysdba
[oracle@orac ~]$ sqlplus / as sysdba
这中方式就不能登陆
[oracle@orac ~]$ sqlplus sys/sys@orcl as sysdba
明明是sys用户,为什么会登录不上呢?
这个原因是密码文件错误或失败导致的。Oracle通过密码文件来管理sysdba的权限。如果被赋予了Sysdba权限,正常情况下在密码文件里就有用户与密码的记录。
经查:Oracle有两种认证的方式:
与操作系统集成认证方式使用密码文件认证过程中有以下几个疑点:
oracle 密码文件是做什么用的呢?
主要是进行DBA权限的身份验证。
Oracle密码文件存储在什么位置呢?
$ORACLE_HOME/dbs/orapw$ORACLE_SID
根据什么判断是使用操作系统集成认证还是使用密码文件认证呢?
SQL> show parameter remote_login
NAME TYPE VALUE
remote_login_passwordfile string EXCLUSIVE
其中remote_login_passworldfile有以下几个值:
shared
One or more databases can use the password file. The password file can contain SYS as well as non-SYS users.
一个或多个的数据库实例可以使用这个密码文件。内容含有sys和非sys用户
exclusive
The password file can be used by only one database. The password file can contain SYS as well as non-SYS users.
密码文件只能被一个实例使用。内容含有sys和非sys用户
none
Oracle ignores any password file. Therefore, privileged users must be authenticated by the operating system.
忽略任何密码文件。所以所有用户必须经过操作系统认证
经查数据库使用密码文件认证。那么需要重建密码文件。
orapwd file=$ORACLE_HOME/dbs/orapworcl password=password
提示已经有一个同名的文件
先删除orapwdorcl.ora 与orapwdorcl
rm orapwdorcl.ora
rm orapwdorcl
再执行
orapwd file=$ORACLE_HOME/dbs/orapworcl password=password
通过sqlplus sys/password@sid as sysdba登录还是提示:ORA-01031: insufficient privileges
Why?
经查执行orapwd命令缺少entries与force参数
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=password entries=5 force=y
再次登录,成功。
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号