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

简介: 最近在为Oracle单实例配置ASM时,做了一些调整,结果导致sys用户无法以操作系统身份验证登陆,即提示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> 
目录
相关文章
|
7月前
|
开发框架 Oracle 关系型数据库
ASP.NET实验室LIS系统源码 Oracle数据库
LIS是HIS的一个组成部分,通过与HIS的无缝连接可以共享HIS中的信息资源,使检验科能与门诊部、住院部、财务科和临床科室等全院各部门之间协同工作。 
79 4
|
2月前
|
存储 Oracle 关系型数据库
数据库数据恢复—Oracle ASM磁盘组故障数据恢复案例
Oracle数据库数据恢复环境&故障: Oracle ASM磁盘组由4块磁盘组成。Oracle ASM磁盘组掉线 ,ASM实例不能mount。 Oracle数据库故障分析&恢复方案: 数据库数据恢复工程师对组成ASM磁盘组的磁盘进行分析。对ASM元数据进行分析发现ASM存储元数据损坏,导致磁盘组无法挂载。
|
5月前
|
Oracle 关系型数据库 数据库
关系型数据库Oracle 故障转移能力
【7月更文挑战第10天】
63 2
|
6月前
|
Oracle 关系型数据库 Java
实时计算 Flink版产品使用问题之如何实现Oracle到其他系统的实时同步
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
|
7月前
|
SQL Oracle 关系型数据库
【ORACLE】 事务 | 锁 | 约束 | 权限、角色与用户管理
【ORACLE】 事务 | 锁 | 约束 | 权限、角色与用户管理
75 1
|
7月前
|
Oracle 关系型数据库 Unix
SAP系统拷贝 UNIX + Oracle
SAP系统拷贝 UNIX + Oracle
55 1
|
7月前
|
SQL 缓存 Oracle
Oracle系统全局区:数据王国的“大舞台”
【4月更文挑战第19天】Oracle的系统全局区(SGA)是数据库实例的核心内存区域,包含共享信息和数据结构,对并发访问和性能优化至关重要。SGA包括共享池(存放SQL和PL/SQL代码)、缓冲区缓存(存储数据块以减少I/O)和重做日志缓冲区(记录数据库更改以保证一致性)。还有大型池和Java池等组件,共同确保数据库高效稳定运行。了解SGA的结构和调优对DBA和开发者至关重要。
|
Oracle 关系型数据库 数据库
Win11系统如何安装Oracle数据库(超级详细)
Win11系统如何安装Oracle数据库(超级详细)
701 0
|
7月前
|
Oracle 关系型数据库 Linux
RHEL7.9系统下一键脚本安装Oracle 11gR2单机版本
RHEL7.9系统下一键脚本安装Oracle 11gR2单机版本
316 1
|
Oracle Java 关系型数据库
JSP struts2工资管理系统myeclipse开发oracle数据库bs框架java编程网结构
JSP 工资管理系统是一套完善的struts2设计系统MVC结构,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为Oracle10g,使用java语言开发,系统主要采用B/S模式开发。
71 1