oracle-01031+linux,linux下ORA-01031: insufficient privileges

在linux 操作系统的数据库服务器上,使用”sqlplus / as sysdba” 登录Oracle 11.2 数据库实例时,登录失败,显示ORA-01031:  权限不足。

如下所示:

[orasrv@jixian admin]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on  15:43:03 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn /as sysdba

ERROR:

ORA-01031: insufficient privileges

SQL>

具体环境:linux,redhat6.2         oracle,Release 11.2.0.1.0

首先检查SQLNET.AUTHENTICATION_SERVICES 项的配置信息。这种检查是很多人的第一选择,网络上大部分帖子都是先解决这个问题,于是我也去查看它的信息。网络上有篇很详细的说明

大致得到的结论是:

1 、在windows 下,SQLNET.AUTHENTICATION_SERVICES 必须设置为NTS 或者ALL 才能使用OS 认证;不设置或者设置为其他任何值都不能使用OS 认证。

2 、在linux 下,在SQLNET.AUTHENTICATION_SERVICES 的值设置为ALL ,或者不设置的情况下,OS 验证才能成功;设置为其他任何值都不能使用OS 认证。

sqlnet.ora 文件的内容如下:[orasrv@jixian admin]$ more sqlnet.ora# sqlnet.ora Network Configuration File: /appdata/orasrv/app/orasrv/product/11.1.0/db_1/network/admin/sqlnet.ora# Generated by Oracle configuration tools.NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)#SQLNET.AUTHENTICATION_SERVICES = (ALL)ADR_BASE = /appdata/orasrv

发现这个是没问题的,故这一点首先排除。

网络上有这么一句话:”你会不会认为,还要坚持实例的初始化参数remote_login_passwordfile,还有密码文件。而这两点是在异地服务器上使用sysdba身份登录数据库实例时才会用到,现在情况是在本地数据库服务器上登录数据库实例。”,但是我查看remote_login_passwordfile后发现value也是exclusive

使用sysdba 身份连接数据库实例,使用的认证方式是操作系统认证,而这一认证操作过程是操作系统根据它管理的信息去校验该用户是否可以连接数据库的过程。

因此,需要进一步分析的是,操作系统如果判断oracle 用户符合认证条件。很显然,我们这里的oracle 用户的权限被操作系统或者oracle 系统拒绝了。

Oracle 认为,需要满足下列条件的用户才能使用系统认证方式连接数据库实例,而网路上提示系统用户oracle 必须属于一个特定的组,该用户必须属于OSDBA 组才能以sysdba 身份登录。这个组在unix 系统上名称为“dba ” ,

我们回到环境中去检查系统用户oracle 的所属组的情况。

[orasrv@jixian admin]$ id orasrv

uid=505(orasrv) gid=501(dba) 组=501(dba)

发现组也没问题。

后来我直接用sys用户连接

[orasrv@jixian ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.1.0 Production on  16:21:58 2013

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

SQL> conn sys/sys as sysdba

SQL>

发现是可以连接到数据库上的。

而直接用conn /as sysdbaque

所以就不明白因为什么了。

请各位高手解决下!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值