ORACLE_19c用户密码登录失败的问题以及ORA-28040
测试环境19c
本地登录无异常,创建测试用户,电脑Plsql登录提示报错ORA-28040,处理后再次登录提示密码错误,最后重置密码再次登录OK?
通过这个问题再次测试及反思:
1.ORA-28040
[oracle@d2:/u03/app/oracle/product/19.0./db_1/network/admin]$ sqlplus cc/cc@192.168.60.45:/pp1
SQL*Plus: Release 19.0.0.0. - Production on Fri Jul ::
Version 19.5.1.0.
Copyright (c) , , Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0. - Production
Version 19.5.1.0.
SQL> [oracle@d2:/u03/app/oracle/product/19.0./db_1/network/admin]$ oerr ora
, , "No matching authentication protocol"
// *Cause: There was no acceptable authentication protocol for
// either client or server.
// *Action: The administrator should set the values of the
// SQLNET.ALLOWED_LOGON_VERSION_SERVER and
// SQLNET.ALLOWED_LOGON_VERSION_CLIENT parameters, on both the
// client and on the server, to values that match the minimum
// version software supported in the system.
// This error is also raised when the client is authenticating to
// a user account which was created without a verifier suitable for
// the client software version. In this situation, that account's
// password must be reset, in order for the required verifier to
// be generated and allow authentication to proceed successfully. $ cd $ORACLE_HOME/
$ cd network/admin/
$ vi sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=
SQLNET.ALLOWED_LOGON_VERSION=8
添加SQLNET参数即可,允许客户端向下兼容。
2.再次登录提示密码错误? 我测试环境自己创建的密码我不知道?What
2.1 注释SQLNET参数,重启DB,回退最初情况
[oracle@d2:/u03/app/oracle/product/19.0./db_1/network/admin]$ cat sqlnet.ora
#SQLNET.ALLOWED_LOGON_VERSION_SERVER=
#SQLNET.ALLOWED_LOGON_VERSION_CLIENT=
#SQLNET.ALLOWED_LOGON_VERSION=
18c: All user connections fail with ORA- except SYS when SEC_CASE_SENSITIVE_LOGON=FALSE (Doc ID 2502204.1)
SEC_CASE_SENSITIVE_LOGON is set to false
The SEC_CASE_SENSITIVE_LOGON parameter is deprecated in 18C. It is retained for backward compatibility only.
Please check the value of SEC_CASE_SENSITIVE_LOGON parameter?
sqlplus / as sysdba
show parameter SEC_CASE_SENSITIVE_LOGON
In case it is set to false, please set it to true and try again to connect.
ALTER SYSTEM set SEC_CASE_SENSITIVE_LOGON=true; The new Exclusive Mode default for password-based authentication in Oracle 12.2 conflicts with case-insensitive password
configurations. All user login fails with ORA- after upgrade to 12.2 (Doc ID 2075401.1)
Option .
- Remove the deprecated instance initialization parameter
sec_case_sensitive_logon setting of FALSE (or set
sec_case_sensitive_logon to TRUE, the default), Option .
- Relax the SQLNET.ALLOWED_LOGON_VERSION_SERVER setting
in the sqlnet.ora file to a more permissive setting,
e.g. SQLNET.ALLOWED_LOGON_VERSION_SERVER=, as described
in the release notes section 2.12.3.1 entitled "Bug 22031049".
- With this option, you will also need to change the user password again so the DBA_USERS.PASSWORD_VERSIONS will get a 10G value.
however the DES based verifier is outdated and should only be used in exceptional cases when legacy client applications
still need it.
2.2创建测试用户,观察默认用户版本 SQL> create user test1 identified by test1;
SQL> select username,account_status,password_versions from dba_users where username='TEST1';
USERNAME ACCOUNT_STATUS PASSWORD_VERSIONS ---------- -------------------------------- ----------------- TEST1 OPEN 11G 12C
PLSQL连接提示密码错误!无法连接成功
.PLSQL内嵌Oracle客户端版本如下:
Client Shared Library -bit - 10.2.0.5.
.操作
$ vi sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=
SQLNET.ALLOWED_LOGON_VERSION_CLIENT=
SQLNET.ALLOWED_LOGON_VERSION= 对用户密码重置后 .再次连接成功无异常???
what? select * from sys.user$ where name='TEST1';
SQL> alter user test1 identified by test1;
USER# NAME TYPE# PASSWORD SPARE4
old 112 TEST1 S:4DBA24F74F1646350DAEB60073E8F72EB8A2C22A056EEF5EC041321A7451;T:CCE7B7C7816CDBB
4552B70EA36FEBB8678F80FD39868D34CA715B1C9FE431B15B39F500836735C17C3399F34AC0BD36AEEB9825
2D633EC9E0741B3CDB62B8C6D39D560F21300ADBE8C8465F322AB8CF6
new TEST1 22F2E341BF4B8764
S:140AEAA0D267A26DF10E5563A7FC0B3F693359142AA00152BB69F8353C39;T:213D18A097EA5000E569394C26
2FCFD2CCF89FF2EA00749FE643417728CFB017C8E28E9A2C36A5F2E748DB8E0237F1BDF943DF32DC77FCAAE1D8171CD
4BF01B97132108782DDED756980D31CCDD38966
可以发现SPARE4的值修改过
SQL> select username,account_status,password_versions from dba_users where username='TEST1';
USERNAME ACCOUNT_STATUS PASSWORD_VERSIONS -------------------- -------------------------------- -----------------
TEST1 OPEN 10G 11G 12C
重点是重置密码后,Oracle由默认的创建用户的密码版本是11g/12c 兼容性增加到了10G,因此客户端再次连接使用相同的密码,可以正确连接到。
猜测密码错误是由于Oracle对不同密码兼容性计算的方法不同,因此相同的密码在跨版本识别是无法识别,需要密码重置后,Oracle判断选择一个合适的版本,
服务器端能正确解析密码,从而登录成功。
或者理解为版本不支持,重置密码后,向下兼容,能否正常登陆。
ORACLE_19c用户密码登录失败的问题以及ORA-28040的更多相关文章
- ASP.NET连接数据库时,提示“用户 'sa' 登录失败原因: 未与信任 SQL Server 连接相关联
用ASP.NET连接数据库时,提示"用户 'sa' 登录失败.原因: 未与信任 SQL Server 连接相关联.".解决方法:首先检查是不是web.config文件内的用户名密码 ...
- SQLServer中用户 'sa' 登录失败解决办法
今天下午,很奇怪的网站突然就打不开了,报错如下: “/”应用程序中的服务器错误. 用户 'sa' 登录失败. 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误 ...
- tomcat 运行异常Cannot create PoolableConnectionFactory (到主机 的 TCP/IP 联接失败)(用户sa登录失败)
这是在java web中启动tomcat遇到的问题,因为这个问题,整整折腾了两天的时间,找了很都解决方案,但终究还是不能正常.现在整理下这个问题的解决方案: 首先,出这个问题之前,请检查一下的问题,这 ...
- 该帐户当前被锁定,所以用户sa登录失败。系统管理员无法将该帐户解锁
运行程序时抛出异常: 基础提供程序在 Open 上失败,详细信息:该帐户当前被锁定,所以用户sa登录失败.系统管理员无法将该帐户解锁. 1.考虑连接字符串是否正常 登录数据库,发现登录报同样的错误 = ...
- mySQL 5.7版 解决密码登录失败Access denied for user 'root'@'localhost' (us
mySQL 5.7版 解决密码登录失败Access denied for user 'root'@'localhost' (us 2016-03-05 ...
- 用户 'sa' 登录失败。该用户与可信 SQL Server 连接无关联'。错误代码:18452 解决办法
原文:https://blog.csdn.net/wuxianwei/article/details/6330270 SQLSERVER 2005采用'SQLSERVER身份验证'去登录, 出错的原因 ...
- Oracle取消用户连续登录失败次数限制
当用户连续登录失败次数过多时,Oracle会锁定该用户,“FAILED_LOGIN_ATTEMPTS”用于设置最大次数,超过该值则锁定该帐号. 要取消用户连续登录失败次数的限制可以按照以下方法操作: ...
- com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败。
com.microsoft.sqlserver.jdbc.SQLServerException: 用户 'sa' 登录失败. at com.microsoft.sqlserver.jdbc.SQLSe ...
- sql server 用户'sa'登录失败(错误18456)(转载)
转载地址:http://thenear.blog.51cto.com/4686262/865544 用户'sa'登录失败(错误18456)解决方案图解 当我们在使用sql server 的时候可能会遇 ...
随机推荐
- 学写PEP,参与Python语言的设计
如果你为Python写了一篇PEP,这篇PEP成功的被Python指导委员会接受了,那么以后你在吹牛皮的时候你就可以说我主导了Python语言某个特性的设计工作. -- 跬蟒 我就问你主导Python ...
- vim 常用指令-持续更新
1. 查询文件夹file1内文件数量:ls file1 | wc -l 2. 生成文件夹file1内的文件列表:find file1 -type f > list.txt 3. git管理文件, ...
- LeetCode62. 不同路径
由于机器人只可以向右和向下移动,所以我们要到第i行第j列,只可以由第i-1行第j列和第i行第j-1列移动一步得到,因此要到第i行第j列的方案数就是到第i-1行第j列的方案数和到第i行第j-1列的方案数 ...
- idea 启动官网spring boot demo 报错
*************************** APPLICATION FAILED TO START *************************** Description: Fai ...
- Netty系列之源码解析(一)
本文首发于微信公众号[猿灯塔],转载引用请说明出处 接下来的时间灯塔君持续更新Netty系列一共九篇 当前:Netty 源码解析(一)开始 Netty 源码解析(二): Netty 的 Channel ...
- 从浏览器地址栏输入url到显示页面的步骤(以HTTP为例)
在浏览器地址栏输入URL 浏览器查看缓存,如果请求资源在缓存中并且新鲜,跳转到转码步骤 如果资源未缓存,发起新请求 如果已缓存,检验是否足够新鲜,足够新鲜直接提供给客户端,否则与服务器进行验证. 检验 ...
- 多种CSS变量技术 带入进入老司机行业
CSS 变量技术 具体用法 使用 -- 声明变量,使用 var() 函数获取变量. :root{ --header-height: 70px; } body { --color: white; } . ...
- 最全MySQL数据库表的查询操作
序言 1.MySQL表操作(创建表,查询表结构,更改表字段等), 2.MySQL的数据类型(CHAR.VARCHAR.BLOB,等), 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对 ...
- es6 模块与commonJS的区别
在刚接触模块化开发的阶段,我总是容易将export.import.require等语法给弄混,今天索性记个笔记,将ES6 模块知识点理清楚 未接触ES6 模块时,模块开发方案常见的有CommonJS. ...
- C++快速读写
1.主函数的最前面加入这个 std::ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); 2.这是一个读入数字的快读 inline int read() ...