ITPub博客

首页 > 数据库 > Oracle > RAC下用户登录失败ORA-01017

RAC下用户登录失败ORA-01017

原创 Oracle 作者:studywell 时间:2019-09-19 20:27:29 0 删除 编辑

1.1.      RAC下用户登录失败ORA-01017

1.1.1.   参考

记一个12c的chm bug导致的ORA-01017

https://blogs.oracle.com/database4cn/12cchm-bugora-01017

 

SEC_CASE_SENSITIVE_LOGON and ORA-1017

https://mikedietrichde.com/2017/04/24/having-some-fun-with-sec_case_sensitive_logon-and-ora-1017/

 

官方文档:

GIMR (Management Database) Registers Into Same Service that the Database Instance also registers On RAC (文档 ID 2024572.1)

MGMTDB registers Database Service (文档 ID 2063662.1)

 

 

1.1.2.   问题现象

一个19.3集群数据库,发现所有所有使用SCANIP登录CDB或PDB连接报ORA-01017错误,错误内容:“用户名/口令无效; 登录被拒绝”。

首先,重置用户名密码,确认了用户名和密码正确无问题。

实际测试过程如下:

1)        两个节点都提供服务,1节点重启后,

mgmt和scanip 在2节点,

通过scan连接失败;

1节点物理和vip都失败

2节点两ip都成功;

 

2)        两个节点都提供服务,2节点重启后

mgmt和scanip 在1节点,

通过scan连接失败;

1节点物理和vip都失败

2节点两ip都成功;

 

3)        两个节点都提供服务,两个节点都重启后

mgmt在1节点,scanip切换到2节点

通过scan连接失败;

1节点物理和vip都失败

2节点两ip都成功;

 

4)        关闭1节点,只用2节点提供服务

mgmt在2节点,scanip切换到2节点

通过scan连接成功;

2节点两ip都成功;

 

1.1.3.   网上资料

 

 

 

 

1.1.4.   问题分析

 

仔细回忆做过的变更,为什么只有1节点有问题?!

修改过profile配置,如执行alter system set sec_case_sensitive_logon=false scope=both sid='*';

查相关文档,发现 Lockout of all database authenticated users getting error ORA-01017: invalid username/password; logon denied ( 文档 ID 2040705.1)

该mos提示,修改set sec_case_sensitive_logon参数为false后,必须修改sqlnet.ora文件中SQLNET.ALLOWED_LOGON_VERSION_SERVER小于12,否则将导致所有连接登录失败,同时报ORA-01017错误。

看到这,回忆起为解决ORA-01017错误,保证低版本客户端可连接数据库,修改oracle用户下的sqlnet.ora文件。文件添加如下内容,即将密码版本从默认12降低到9,支持Oracle 10G客户端访问。:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=9

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9

SQLNET.INBOUND_CONNECT_TIMEOUT = 120

当时记得两个节点都增加了该内容,今天检查发现2节点增加了内容,1节点没有增加该内容。

1节点sqlnet.ora添加参数后,数据库连接恢复正常。

这就解释了为什么2节点能登录,而1节点登录不了。

 

按官方文档建议:

维持set sec_case_sensitive_logon为默认值TRUE,以提高数据库安全性,可执行如下语句:alter system set sec_case_sensitive_logon=true scope=both sid='*';

同时在集群所有节点增加sqlnet.ora内容,内容如下:,

SQLNET.ALLOWED_LOGON_VERSION_SERVER=9

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=9

SQLNET.INBOUND_CONNECT_TIMEOUT = 120

增加内容后,需重新修改数据库用户名密码,以支持低版本10G数据库客户端。当然,如素有客户但11.2.0.4以上,则不需要修改sqlnet.ora文件。

查看用户支持的密码版本:select username, password_versions from DBA_USERS where username='SYSTEM';

 

1.1.5.   分析过程走过的弯路:

一种说法是集群名和CDB数据库名相同,集群MGMTDB注册到CDB服务下,导致用户连接CDB失败,可参考文档:

MGMTDB registers Database Service (Doc ID 2063662.1)

GIMR (Management Database) Registers Into Same Service that the Database Instance also registers On RAC (Doc ID 2024572.1)

搭建测试集群,创建和集群名相同CDB,未发现服务异常问题,可正常访问CDB,初步排除是CDB和集群名相同冲突导致。该bug可能以在19.3修复。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29519108/viewspace-2657636/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2014-03-04

  • 博文量
    305
  • 访问量
    429800