百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

sqlplus / as sysdba登陆失败,(ORA-01017)

mhr18 2024-09-14 05:31 41 浏览 0 评论

周一上班检查alert log,看到某个库报出大量的错误 提示无法连接到ASM实例,这是某知名MES厂商DBA创建的11G RAC刚刚转交到我手上的,这又是给我挖了什么坑?

报错为ORA-01017?用户名密码不对??what?


登陆oracle 用户发现本机也无法直接以sqlplus / as sysdba登陆

登陆grid 也无法用sqlplus / as sysasm登陆?

难道关闭了?本地操作系统认证?先以sys用户名和密码登陆查看

remote_login_passwordfile参数为默认值EXCLUSIVE,也就是没有关闭本地操作系统认证?。

引申?:

Oracle登录验证方式包括口令验证和操作系统认证。 操作系统认证,就是Oracle认为操作系统用户是安全的,在使用sqlplus登录时,不校验用户密码,直接登录。 口令认证,就是指Oracle认为操作系统用户是不安全的,需要通过口令文件进行账号密码验证。Oracle的口令文件一般存放在$ORACLE_HOME/dba/目录下,名字为orapw+sid。Oracle通过初始化参数remote_login_passwordfile限制口令文件的使用,这里详细介绍下:

1)NONE

remote_login_passwordfile=none表示,登录时禁用口令文件验证,sysdba用户只能通过操作系统认证登录数据库,其他方式的登录,比如PL/SQL,就会报前面提到的ORA-01017错误。操作系统认证方式涉及sqlnet.ora($ORACLE_HOME/network/admin目录下)中的参数SQLNET.AUTHENTICATION_SERVICES: a) NONE:关闭操作系统认证,只能通过口令文件认证;---- b) ALL: linux/unix平台下,采用操作系统认证,但远程sysdba登录仍然需要口令文件认证。 c) NTS: windows平台下操作系统认证。

2) EXCLUSIVE

remote_login_passwordfile=exclusive表示,独占模式使用口令文件,这个是默认值,用在单数据库的单实例环境中。这种模式下,可以对sysdba用户进行增加、修改、删除,同时可以修改sysdba用户密码,记录到密码文件中。 查看被授予sysdba权限的用户:

SELECT USERNAME FROM V$PWFILE_USERS WHERE SYSDBA='TRUE';

3) SHARED

这种模式下,可以在多个数据库间共享使用口令文件,口令文件不可被修改,包括不能修改sys用户密码。Oracle建议首先将需要sysdba权限的用户在excusive模式下设置好,然后修改remote_login_passwordfile修改为shared共享口令文件。 修改方法:

alter system set remote_login_passwordfile=shared scope=spfile;

静态参数 需要重启数据库生效。 通常linux直接sqlplus / as sysdba 无法登陆一般都是因为修改了remote_login_passwordfile参数导致,但是此处明显不是的。

继续按alert log的报错查看mos,发现有这么一篇文档

ORA-01017: invalid username/password; logon denied WARNING: ASM communication error: op 18 state 0x40 (1017) (Doc ID 2292526.1)


文档提示 当对oracle/grid添加到新的group时 由于dba组比asmdba组靠前会导致这个报错,上周确实因为无法su 将oracle/grid 添加到wheel组(这到底给我挖了多少坑?)

检查 oracle/grid的用户属性

?WTF?只有一个oinstall组,dba asmdba?等等根本都没有?怪不得本地无法登陆!原因找到了解决就很简单了,将oracle/grid缺失的组都加上

 usermod -g oinstall -G asmdba,dba,oper oracle
 usermod -g oinstall -G asmadmin,asmdba,asmoper,dba,oper grid
 检查用户组
cat /etc/group
oinstall:x:1003:
asmadmin:x:1200:grid
asmdba:x:1201:oracle,grid
asmoper:x:1202:grid
dba:x:1300:oracle,grid
oper:x:1301:oracle,grid

修改后确认 oracle/grid 可以正常登陆


本文涉及到的知识点

  1. 本地登陆认证相关参数remote_login_passwordfile
  2. grid新加用户组时 asmdba组需要放在dba组前

参考文档
ORA-01017: invalid username/password; logon denied WARNING: ASM communication error: op 18 state 0x40 (1017) (Doc ID 2292526.1)

?https://www.cnblogs.com/yutianqi/p/4967777.html

相关推荐

Maven常用命令(maven用法)

一、Maven常用命令及其介绍命令描述mvnclean对项目进行清理,删除target目录下编译的内容mvncompile编译项目源代码mvntest对项目进行运行测试mvnpackage打包...

oracle数据恢复—oracle执行truncate命令误删除数据的数据恢复

oracle数据库误执行truncate命令导致数据丢失是一种常见情况。通常情况下,oracle数据库误操作删除数据只需要通过备份恢复数据即可。也会碰到一些特殊情况,例如数据库备份无法使用或者还原报错...

Java单向代码执行链配合的动态代码上下文执行

Java反序列化漏洞的危害不光在于普通gadgets能够带来的命令执行,由于Java应用的使用场景以及gadgets大多都是构造出单向代码执行,一般通过利用链构造出的单向代码链能做到的能力往往有限。而...

如果可以从历史上抹去一种编程语言,你会选择哪个?

假设你获得一个程序员界的“死亡笔记”,但只能写下一种编程语言的名字,然后这门语言就会从历史中彻底抹除——没有它的发明、没有它的生态、更没有它写下的那几百万行遗产代码。你,会选择谁?是“人人喊打”的P...

新项目终于用上了jdk24(jdk34)

Java世界迎来重大更新!Oracle刚刚发布的JDK24不仅是一个长期支持版本(LTS),更是一场Java编程体验的革命。想象一下,无需预编译就能直接运行多文件项目,用一个下划线就能优雅地忽略不需...

如何检查 Linux 服务器是物理服务器还是虚拟服务器?

在企业级运维、故障排查和性能调优过程中,准确了解服务器的运行环境至关重要。无论是物理机还是虚拟机,都存在各自的优势与限制。在很多场景下,尤其是当你继承一台服务器而不清楚底层硬件细节时,如何快速辨识它是...

第四节 Windows 系统 Docker 安装全指南

一、Docker在Windows上的运行原理(一)架构限制说明Docker本质上依赖Linux内核特性(如Namespaces、Cgroups等),因此在Windows系统上无法直...

C++ std:shared_ptr自定义allocator引入内存池

当C++项目里做了大量的动态内存分配与释放,可能会导致内存碎片,使系统性能降低。当动态内存分配的开销变得不容忽视时,一种解决办法是一次从操作系统分配一块大的静态内存作为内存池进行手动管理,堆对象内存分...

Activiti 8.0.0 发布,业务流程管理与工作流系统

Activiti8.0.0现已发布。Activiti是一个业务流程管理(BPM)和工作流系统,适用于开发人员和系统管理员。其核心是超快速、稳定的BPMN2流程引擎。Activiti可以...

MyBatis动态SQL的5种高级玩法,90%的人只用过3种

MyBatis动态SQL在日常开发中频繁使用,但大多数开发者仅掌握基础标签。本文将介绍五种高阶技巧,助你解锁更灵活的SQL控制能力。一、智能修剪(Trim标签)应用场景:动态处理字段更新,替代<...

Springboot数据访问(整合Mybatis Plus)

Springboot整合MybatisPlus1、创建数据表2、引入maven依赖mybatis-plus-boot-starter主要引入这个依赖,其他相关的依赖在这里就不写了。3、项目结构目录h...

盘点金州勇士在奥克兰13年的13大球星 满满的全是...

见证了两个月前勇士与猛龙那个史诗般的系列赛后,甲骨文球馆正式成为了历史。那个大大的红色标志被一个字母一个字母地移除,在周四,一切都成为了过去式。然而这座,别名为“Roaracle”(译注:Roar怒吼...

Mybatis入门看这一篇就够了(mybatis快速入门)

什么是MyBatisMyBatis本是apache的一个开源项目iBatis,2010年这个项目由apachesoftwarefoundation迁移到了googlecode,并且改名为M...

Springboot数据访问(整合druid数据源)

Springboot整合druid数据源基本概念SpringBoot默认的数据源是:2.0之前:org.apache.tomcat.jdbc.pool.DataSource2.0及之后:com.z...

Linux 中的 &quot;/etc/profile.d&quot; 目录有什么作用 ?

什么是/etc/profile.d/目录?/etc/profile.d/目录是Linux系统不可或缺的一部分保留配置脚本。它与/etc/profile文件相关联,这是一个启动脚本,该脚...

取消回复欢迎 发表评论: