首页 > 数据库 > Oracle > RAC下用户登录失败ORA-01017
1.1. RAC下用户登录失败ORA-01017
记一个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)
一个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节点有问题?!
修改过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';
一种说法是集群名和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博客 ” ,链接:https://blog.itpub.net/29519108/viewspace-2657636/ ,如需转载,请注明出处,否则将追究法律责任。