ORA-01031: insufficient privileges 解决办法

ORA-01031: insufficient privileges 解决办法sysdba不能远程登录这个也是一个很常见的问题了。碰到这样的问题我们该如何解决呢?我们用sysdba登录的时候,用来管理我们的数据库实例,特别是有时候,服务器不再本台机器,这个就更是有必要了。 当我们用sqlplus"/assysdba" 是可以登

大家好,欢迎来到IT知识分享网。

sysdba不能远程登录这个也是一个很常见的问题了。 

碰到这样的问题我们该如何解决呢?


我们用sysdba登录的时候,用来管理我们的数据库实例,特别是有时候,服务器不再本台机器,这个就更是有必要了。 

当我们用sqlplus “/ as sysdba” 

是可以登录的。 

但是我们如果用sqlplus “sys/password@tnsname as sysbda”这样的方式去不能登录. 

这里我们的错误一般分为两类 

第一类: 提示ORA-01031: insufficient privileges(权限不足)  

引用:

sqlplus “sys/password as sysdba” 
ERROR:
ORA-01031: insufficient privileges

或者

sqlplus /nolog

conn / as sysdba 
ERROR:
ORA-01031: insufficient privileges

如果是这样的错误,你明明是用这个sys登录的,而且确实是sysdba的权限,为什么登录却提示你的权限不够叻。 

这里的问题出现在密码文件里,由于你的密码文件缺损或者不存在,而Oracle实例对sysdba的权限是根据这个 

密码文件来判断的,如果你的用户被grant to sysdba了,那么这个用户的密码和用户名也在这个密码文件了。 

这样也就发现你不是sysdba的角色,当然as sysdba就会提示权限不足了哟。 

为什么这样做了,如果我们的数据库没有open,那么对于的一些动态视图是不能打开的,所以oracle必须把这些 

用户的口令和username放在一个独立的文件里,这样在数据库还不是open的状况写,有个地方判断了。 

如何解决了。我们首先来判断一下 

执行sql 

SQL> select * from v$pwfile_users; 

USERNAME SYSDB SYSOP 

—————————— —– —– 

SYS TRUE TRUE 

如果这里选择不出了记录的话,就是密码文件没有叻。 

这里解决的方法就是重建orapwd文件 

使用密码文件orapwd 命令

 
orapwd file=$ORACLE_HOME/dbs/orapw$ORACLE_SID password=gelc123 entries=5
force=y
 
再次查看 v$pwfile_users 这时候有一条记录了 

现在再试试,我们的问题基本上就解决了 

还有一种情况,提示的是ORA-01017:用户名密码出错  

ERROR:

ORA-01017: invalid username/password; logon denied

这样的错误,可是你的密码和用户名明明输入的都是正确的。这又是为什么叻 

检查一下系统参数remote_login_passwordfile的值, 

这里需要启动密码文件的话,需要前提就是这个值, 这里的值可以NONE,EXCLUSIVE和SHARE 

EXCLUSIVE和SHARE都可以,EXCLUSIVE是独占的文件,SHARE是多实例的体系中的共享模式 

这个问题基本上就是这个值导致的 

SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile; 

现在重启服务试试看。 

已经OK解决了吧 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27642.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信