ORACLE 系统用户角色故障导致ORA-01017

最近在为Oracle单实例配置ASM时,做了一些调整,结果导致sys用户无法以操作系统身份验证登陆,即提示ORA-01017错误。本文描述了这个故障的解决过程,供大家参考。

有关Oracle身份认证机制,可以参考:Oracle 密码文件

一、故障现象

[oracle@centos7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Sep 22 09:52:26 2017

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

ERROR:
ORA-01017: invalid username/password; logon denied

二、故障分析

1、使用oerr命令行获取详细帮助
[oracle@centos7 ~]$ oerr ora 1017
01017, 00000, "invalid username/password; logon denied"
// *Cause:
// *Action:

2、查看sqlnet.ora的配置,这个文件主要定义了是否允许开启OS用户免密码登陆认证。
[oracle@centos7 ~]$ more $ORACLE_HOME/network/admin/sqlnet.ora
# sqlnet.ora Network Configuration File: /u01/oracle/db_1/network/admin/sqlnet.ora
# Generated by Oracle configuration tools.

#NAMES.DIRECTORY_PATH= (TNSNAMES)
SQLNET.AUTHENTICATION_SERVICES = (ALL)    ###此处为ALL,表面可以使用OS认证身份验证

ADR_BASE = /u01/oracle

3、查看config.c配置文件
[oracle@centos7 ~]$ cat $ORACLE_HOME/rdbms/lib/config.c

/*  SS_DBA_GRP defines the UNIX group ID for sqldba adminstrative access.  */
/*  Refer to the Installation and User's Guide for further information.  */

/* IMPORTANT: this file needs to be in sync with
              rdbms/src/server/osds/config.c, specifically regarding the
              number of elements in the ss_dba_grp array.
*/

#define SS_DBA_GRP "dba"     ###此处操作系统用户组定义为dba组
#define SS_OPER_GRP "oper"    ###Author : Leshami
#define SS_ASM_GRP ""              ###Blog    : http://blog.csdn.net/leshami

char *ss_dba_grp[] = {SS_DBA_GRP, SS_OPER_GRP, SS_ASM_GRP};  

4、查看当前oracle用户所在的用户组
[oracle@centos7 ~]$ id oracle
uid=1001(oracle) gid=54321(oinstall) groups=54321(oinstall),54327(asmdba),54329(asmadmin)
从上面的结果中可知,oracle用户并不属于dba组

5、查看操作系统层面是否存在dba用户组
[oracle@centos7 ~]$ grep dba /etc/group
dba:x:54322:

通过上面的分析,应该是oracle用户所在的组不包含dba组导致无法通过操作系统层面实现身份认证。

三、故障解决

[oracle@centos7 ~]$ su - root
Password:

增加oracle用户到dba组
[root@centos7 ~]# usermod -G dba,asmdba,asmadmin oracle
[root@centos7 ~]# id oracle
uid=1001(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54327(asmdba),54329(asmadmin)

[root@centos7 ~]# su - oracle
Last login: Fri Sep 22 10:03:54 CST 2017 on pts/1

再次登陆成功
[oracle@centos7 ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Fri Sep 22 10:27:34 2017

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

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> 
时间: 2024-10-01 13:47:26

ORACLE 系统用户角色故障导致ORA-01017的相关文章

Win8.1系统Wpprecorder.sys故障导致蓝屏怎么办?

Win8.1系统Wpprecorder.sys故障导致蓝屏怎么办?   具体方法: 1.进入Win8.1恢复环境(WINRE)环境(在自动修复失败之后会出现蓝色底菜单选项),高级选项菜单,打开命令提示符; 2.输入:c:windowssystem32compact.exe /U c:windowssystem32drivers*.sys; 3.此时重启之后就可以进入系统了; 4.打开命令提示符(管理员),输入: fsutil behavior set DisableCompression 1 5

oracle数据库用户角色简单测试

测试数据库角色role,使用set role命令启用角色,设置数据库用户的缺省角色 创建角r1和r2,其中r2通过口令验证,我设置的口令是oracle SQL> conn system/oracle Connected. SQL> create role r1; Role created. SQL> create role r2 identified by oracle; Role created. 给这两个角色授权,其中r2的权限包含r1的权限,也就是说r2的权限高一些 SQL>

Oracle新建用户、角色,授权,建表空间的sql语句_oracle

oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create table权限允许用户创建表,grant any privilege 权限允许用户授予任何系统权限.对象权限( database object privilege )可以让用户能够对各个对象进行某些操作.例如delete权限允许用户删除表或视图的行,select权限允许用户通过select从表.视图.序列(sequences)或快照

Oracle新建用户、角色,授权,建表空间实例(1/2)

每个oracle用户都有一个名字和口令,并拥有一些由其创建的表.视图和其他资源.oracle角色(role)就是一组权限(privilege)(或者是每个用户根据其状态和条件所需的访问类型).用户可以给角色授予或赋予指定的权限,然后将角色赋给相应的用户.一个用户也可以直接给其他用户授权. 一.创建用户 Oracle创建用户的语法:  代码如下 复制代码 Oracle创建用户(密码验证用户),可以采用CREATE USER命令. CREATE USER username IDENTIFIED BY

内存故障导致系统无法安装解决方法

承载着整个电脑系统处理数据的中转,我们天天用计算机来工作就涉及到数据的相互转化,因此内存故障出现的几率也很多,内存引起的故障表现也是千奇百怪.本文就讲述了笔者曾经遇见的由内存故障引起无法安装操作系统的案例. 故障现象 计算机重新安装系统时,电脑通过系统自检,在引导进入系统过程中出现停滞状态,没出现任何错误提示.后来把备份好Ghost系统文件的刻录光盘放入光驱,进入BIOS改为首先由光盘引导系统.然后在进入DOS后运行Ghost,选定路径进行系统恢复.当恢复系统进度条进行到一半的时候,Ghost开

主板故障导致PE系统蓝屏怎么办

  进系统蓝屏死机,重装系统也是此现象,进PE也会电脑蓝屏,进PE都蓝屏的话,我们往往确实会是内存或者显卡的问题,但是更换内存和显卡后,进PE系统还是蓝屏.如果是主板的问题往往这类问题比较难查,因为往往是相关的硬件出现问题导致驱动时出现蓝屏. 经检查发现主板是维修过,目测南北桥都换过,主板蓝屏.硬盘转换芯片HDD也换过,且BIOS资料无法保存.即使南北桥都换过应该是没问题的,刚好手上有一块同型号的主板,就把那个硬盘转换芯片HDD换下来试了下,真走运,进入PE系统居然不蓝屏了,重新安装系统,一切正

j2ee-第一次用myeclipse+tomcat+oracle做用户用户注册登录系统,用JDBC连接不上数据库

问题描述 第一次用myeclipse+tomcat+oracle做用户用户注册登录系统,用JDBC连接不上数据库 我很热爱计算机软件专业,希望给一些帮助,大学新生,第一次做,就是无法使用数据库,下面是部分代码: <%@ page language="java" import="java.util.*" pageEncoding="ISO-8859-1"%> <% String path = request.getContextP

WordPress判断用户角色和权限等级及整合数据库导致后台登录无权限

WordPress判断用户角色和权限 其实判断WordPress用户角色和权限是非常少用的,对于普通的WordPress博主而言,可能这个功能不太常用,但是开放注册的WordPress而言,这个功能可能就会用到了.而子凡也就是因为需要做用户数据的整合及同步,在昨天子凡就发过一篇博客<WordPress数据库整合导致后台登录无权限解决方法>,其中就涉及到了WordPress用户的权限问题,所以这里子凡整理了一篇比较全面的文章,大家可以参考学习了解一下. 首先了解一下WordPress不同用户.不

oracle 11g-sqlplus连接数据库,系统用户可以连接,自己新建的用户无法连接,报错12514.

问题描述 sqlplus连接数据库,系统用户可以连接,自己新建的用户无法连接,报错12514. 我用sqlplus连接数据库(oracle11g),用system,sys用户都可以连接,但是新建的用户无法连接,错误ora-12514无法解析指定的连接标识符.确定不是用户权限问题,用pl/sql可以连接上.尝试了网上各种方法,无法解决,求大神帮忙,已经很多次遇到这种问题了. 解决方案 可能是你新建用户的时候,没有给新用户分配权限