背景介绍
用户在命令窗口输入sqlplus / as sysdba提示ORA-01031: insufficient privileges 错误,同样的,在输入rman target / 提示同样的错误
问题分析
根据经验,使用sqlplus / as sysdba登陆数据库,提示权限不够,也就是我们常用的用操作系统认证方式登录数据库必须满足下面两个条件:
1. 操作系統用户是否dba组
2. sqlnet.ora 认证服务从NONE改为NTS
SQLNET.AUTHENTICATION_SERVICES= (NTS) –注意这里windows使用nts、linux使用all
本案例服务器是aix的,我们查询结果显示如下
可以看到用户oracle的gid为空,肯定有人动了oracle用户的所属组,知道问题所在,后续处理的方式就很简单了
问题处理
因为系统是aix系统,因此需要通过smitty chuser 调整主组为oinstall
知识点
这次我们问题是用户所属组引起的,但大多数时候,该问题是由SQLNET.AUTHENTICATION_SERVICES引起,其官方解释如下:
Purpose
Use the parameter
SQLNET.AUTHENTICATION_SERVICES
to enable one or more authentication services. If authentication has been installed, it is recommended that this parameter be set to either
none
or to one of the authentication methods.
Default
None
Values
Authentication Methods Available with Oracle Net Services:
-
none
for no authentication methods. A valid username and password can be used to access the database.
-
all
for all authentication methods
-
nts
for
Windows NT native authentication
Authentication Methods Available with Oracle Advanced Security:
-
kerberos5
for Kerberos authentication
-
radius
for RADIUS authentication
-
dcegssapi
for DCE GSSAPI authentication