您的位置:首页 > 财经 > 金融 > Oracle问题笔记

Oracle问题笔记

2024/11/16 19:50:31 来源:https://blog.csdn.net/yinshengchen/article/details/141438985  浏览:    关键词:Oracle问题笔记
  1. ORA-28040 没有匹配的验证协议
  • 问题出现场景
    oracle数据库为12c,应用使用的jdbc或客户端工具是11g版本一下,连接12c数据库时会报ora-28040错误。
  • 解决办法
    Oracle服务端的$ORACLE_HOME/network/admin/sqlnet.ora文件中添加:

SQLNET.ALLOWED_LOGON_VERSION_SERVER=10

SQLNET.ALLOWED_LOGON_VERSION_CLIENT=10

后面10是对应客户端工具的版本号,如果客户端工具版本很低,可以进行调整。
这时,再次连接数据库时,会报用户密码错误。需要修改一次数据库密码就可以了。

alter user username identified by "密码";

按上述方法操作后,不再报“ORA-28040 没有匹配的验证协议”的错误了,但仍报“ORA - 1017用户名/口令无效; 登录被拒绝”错误,解决方法见第二条。

  1. ORA-1017用户名/口令无效; 登录被拒绝

参考:https://www.cnblogs.com/freepc/p/16309749.html

一、出现症状

 1、使用sqlplus连接正常

 2、C#使用10gODP.NET连接时,报上面的错误

二、原因

 1、Oracle11G之前密码是不区分大小写的,从11G开始默认密码区分大小写

 2、使用10GODP.NET时,会自动把密码转换成大写

三、解决办法

 1、给连接字符串中密码使用加上引号,这样密码就不会转成大写了

 2、换成11G客户端

 3、修改数据库,禁用大小写敏感模式:ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE

因我的连接字符串是写在XML文件里,在XML文件里引号是需要转义的,现提供XML中常用的转义字符:

<

<

小于号

&gt;

>

大于号

&amp;

&

&apos;

'

单引号

&quot;

"

双引号

最后解决方法:

CMD进入命令行,输入以下命令:

sqlplus / as sysdba

ALTER SYSTEM SET SEC_CASE_SENSITIVE_LOGON = FALSE;

  1. 用户被锁定,解锁

查询是否被锁
select username, account_status, lock_date from dba_users;
oracle
解锁用户
ALTER USER username ACCOUNT UNLOCK;

  1. 修改用户名、密码

修改用户名:

update user$ set name='新用户名' where name='旧用户名'

修改密码:

alter user username identified by "密码";

  1. 修改表字段的排序

(1)以数据库管理员身份连接数据库

附修改管理员密码方法:

  1. 在Oracle服务端命令行中执行命令:sqlplus "/ as sysdba"
  2. 然后执行SQL语句:alter user SYS identified by newpassword;

“newpassword”为修改后的新密码(注意密码里如果有特殊字符可能会失败)。

(2)查询表的Id

使用以下SQL查询表的Id,其中“UserName”为用户名,“TableName”为待查询的表名:

select object_id from all_objects where owner = 'UserName' and object_name = 'TableName';

(3)更新表字段排序

在PLSql中通过以下sql查询并修改字段排序,其中“78387”为上一步查到的表Id:

select obj#,col#,name from sys.col$ where obj#=78387 for update;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com