升级数据库到12C,plsql连数据库报ORA-28040

问题:

把数据库数据库从11.2.0.4升级到12.2.0.1以后,使用plsqldev连接数据库报错,错误代码如下:

ORA-28040: No matching authentication protocol

解决:
vi $ORACLE_HOME/network/admin/sqlnet.ora
SQLNET.ALLOWED_LOGON_VERSION_SERVER=8 
解释:

首先解释一下SQLNET.ALLOWED_LOGON_VERSION的作用:

Use the sqlnet.ora parameter SQLNET.ALLOWED_LOGON_VERSION to specify which authentication protocols are allowed by the client or database. This parameter defines the minimum Client Oracle version that is allowed to connect to the database. This parameter has been introduced in 10g which replaces the init.ora parameter DB_ALLOWED_LOGON_VERSION.【Doc ID 402193.1】

该参数在12c中以被
SQLNET.ALLOWED_LOGON_VERSION_SERVER 和SQLNET.ALLOWED_LOGON_VERSION_CLIENT替代,
如果在12c中配置了SQLNET.ALLOWED_LOGON_VERSION,会在DB ALERT 中出现“Using deprecated SQLNET.ALLOWED_LOGON_VERSION parameter”提示。

SQLNET.ALLOWED_LOGON_VERSION_SERVER是配置在数据库服务器端的参数,在12.2版本有效值是8,9,10,11,12。所以如果遇到该类问题解决方法是配置SQLNET.ALLOWED_LOGON_VERSION_SERVER的值,根据客户端版本设置一个比默认值更宽松的值。
SQLNET.ALLOWED_LOGON_VERSION_CLIENT是当数据库作为client使用dblink时,也同样要在创建dblink数据库端sqlnet.ora中配置该参数。

其他的问题:

如果已完成了上面的修改,但是登录提示密码错误ORA-1017,同常还需要与SEC_CASE_SENSITIVE_LOGON参数配合。另外如果在12.2数据库中创建的用户密码版本默认为‘11G 12C’,这是一种排除了10g密码认证的版本,因为登陆用户没有10G的密码版本,所以使用10g或更老client导致报错ORA-1017。
这类问题的解决方法是重新修改一次密码。

密码认证版本查询

SELECT USERNAME, PASSWORD_VERSIONS FROM DBA_USERS ORDER BY 1;

引用参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值