在linux操作系统数据库服务器上,使用sqlplus/as sysdba登录到Oracle 11.2数据库实例时,登录失败,ORA-01031:权限不足
如下所示。
[ orasrv @ Jixian admin ] $ sqlplus/nolog
SQL*plus:版本11.2.0.1.0 production on 1533604:032013
版权所有(c ) 1982,2009,Oracle.all权限保留。
SQL conn /as sysdba
错误:
ora-010313360信息权限
SQL
具体环境: linux,redhat6.2 oracle,版本11.2.0.1.0
首先,检查SQLNET.AUTHENTICATION_SERVICES条目的配置信息。 这个检查是很多人的首选,网上大部分帖子都是先解决这个问题,我也去查那个信息。 网上有详细的说明
大致结论如下
1、windows情况下,SQLNET.AUTHENTICATION_SERVICES必须设置为NTS或ALL才能使用操作系统认证; 不设定操作系统认证或不设定为其他值就无法使用。
2、在linux上,SQLNET.AUTHENTICATION_SERVICES的值设置为ALL或未设置时,操作系统认证成功; 即使设定为其他值也不能使用操作系统认证。
sqlnet.ora文件的内容如下。 [ orasrv @ Jixian admin ] $ more sqlnet.ora # sqlnet.oranetworkconfigurationfile 3360/apdata/orasrv network/admin/sqll
我知道这没关系,所以这一点先排除在外。
网上有这样的话。 “您不认为您会坚持实例的初始化参数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:版本11.2.0.1.0 production on 163360213360582013
版权所有(c ) 1982,2009,Oracle.all权限保留。
SQL conn sys/sys as sysdba
SQL
发现可以连接到数据库。
直接使用conn /as sysdbaque
所以我不知道是为了什么了。
各位烂牛,请解决。