Oracle sys用户远程登录失败 ORA-01031

今天在管理oracle的时候发现一个很奇怪的问题,通过sqlplus sys/password as sydba 或者 sqlplus / as sysdba均可以登陆。

但通过sqlplus sys/[email protected] as sysdba登录的时候报错,显示

ORA-01031: insufficient privileges

明明是sys用户,为什么会登录不上呢?

这个原因是密码文件错误或失败导致的。Oracle通过密码文件来管理sysdba的权限。如果被赋予了

Sysdba权限,正常情况下在密码文件里就有用户与密码的记录。

经查:Oracle有两种认证的方式:

  1. 与操作系统集成认证方式

    ?

  2. 使用密码文件认证

过程中有以下几个疑点:

  1. oracle 密码文件是做什么用的呢?

主要是进行DBA权限的身份验证。

  1. Oracle密码文件存储在什么位置呢?

$ORACLE_HOME/dbs/orapw$ORACLE_SID

  1. 根据什么判断是使用操作系统集成认证还是使用密码文件认证呢?

    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/[email protected] as sysdba登录还是提示

ORA-01031: insufficient privileges

Why?

经查执行orapwd命令缺少entries与force参数

orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=password entries=5 force=y

再次登录,成功。

?

?

?

Ref:

https://aprakash.wordpress.com/2010/06/01/sys-as-sysdba-insufficient-privileges/

http://blog.csdn.net/leshami/article/details/5611672

时间: 2024-10-02 03:02:44

Oracle sys用户远程登录失败 ORA-01031的相关文章

oracle sysdba用户远程登录

sysdba远程登录需要两个条件: 1.remote_login_passwordfile =exclusive时,启用口令文件,允许远程登录: 查看remote_login_passwordfile 参数 SQL> SHOW PARAMETER REMOTE_LOGIN_PASSWORD NAME TYPE VALUE ------------------------------------ ----------- remote_login_passwordfile string EXCLUS

ssh以root用户远程登录失败

参考文献: http://blog.csdn.net/lichangzai/article/details/39379153 http://blog.csdn.net/yasi_xi/article/details/8633189 通过secure crt远程ssh连接linux服务器,使用root用户直接访问,无法登陆成功.只能以普通用户登录,然后su root才能切换到 root账户. 解决方法: 1) 普通用户登录,然后su root切换到root账号, 2) vim /etc/ssh/s

SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法

出现问题 : 标题: 连接到服务器------------------------------无法连接到 .\SQLEXPRESS.------------------------------其他信息:用户 'sa' 登录失败. (Microsoft SQL Server,错误: 18456)   解决方法:  1.打开数据库——用Windows身份登录数据库   02.登录名——双击sa(打开属性)  03.常规——设置密码——确定  04.状态——登录:启用——确定  05. 右击服务器名—

【Linux安全】防止 root 用户远程登录

防止 root 用户远程登录,在终端输入以下命令: vim /etc/ssh/sshd_config 修改如下行为:no PermitRootLogin no 如图所示:

SQL Server 2008 用户SA登录失败(错误18456)之图文解决方法

SQL2008无法连接到.\SQLEXPRESS,用户'sa'登录失败(错误18456)图文解决方法 出现问题 : 标题: 连接到服务器 ------------------------------ 无法连接到 .\SQLEXPRESS. ------------------------------ 其他信息: 用户 'sa' 登录失败. (Microsoft SQL Server,错误: 18456) 解决方法: 1.打开数据库——用Windows身份登录数据库 02.登录名——双击sa(打开

用户 'sa' 登录失败。 (Microsoft SQL Server,错误: 18456)

今天登陆数据库的时候,却忽然登陆了不了,并且提示了这样的错: 解决方法: 1.用Windows身份登录数据库 2.安全性==>登录名==>双击sa 3.重设密码 4.状态==>登录:启用==>确定 5.右击服务器名==>属性 6.重启数据库,和数据库服务. 用户 'sa' 登录失败. (Microsoft SQL Server,错误: 18456)

com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。

com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:196) at com.microsoft.sqlserver.jdbc.TDSTokenHandler.onEOF(tdsparser.java:246) at com.micr

用户'sa'登录失败(错误18456)解决方案图解

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://thenear.blog.51cto.com/4686262/865544 http://thenear.blog.51cto.com/4686262/865544 用户'sa'登录失败(错误18456)解决方案图解 当我们在使用sql server 的时候可能会遇见这样错误提示“无法连接到.,用户'sa'登录失败(错误18456)”, 如图: 具体的解决方案: 首先使用管理员身

禁止root用户远程登录

Linux修改ssh端口22 vi /etc/ssh/ssh_config vi /etc/ssh/sshd_config 然后修改为port 8888 以root身份service sshd restart (redhat as3) 使用putty,端口8888 Linux下SSH默认的端口是22,为了安全考虑,现修改SSH的端口为1433,修改方法如下 : /usr/sbin/sshd -p 1433 为增强安全 先增加一个普通权限的用户: #useradd uploader #passwd