一个低级的ORA-01017错误

事件缘由
使用sys账户创建了一个数据清理的存储过程,再创建一个Oracle job定时运行这个存储过程,用于做表数据的清理。第二天看表数据未删除,说明job执行有错,打算使用sys账号登录查看job运行情况,反复输入sys账户信息,总提示ORA-01017,
这里写图片描述
1.尝试改sys用户密码,重试报错依旧。
2.使用sys登录GC,报错相同。使用普通用户登录正常。
3.数据库服务器上使用sqlplus sys/oracle@dep182 as sysdba登录正常。

问题排查和原因
根据以上信息,可能有朋友已经基本了解为何有这种现象了。

1.上述问题反映的现象是远程使用sys账户无法登录,数据库服务器本地使用TNS方式连接正常,首先排除密码错误。

2.查看$ORACLE_HOME/dbs,存在密码文件orapwDEP,为了保险起见,备份旧的密码文件后,重建了密码文件,问题依旧。

3.查询v$pwfile_users表记录,发现是空,
这里写图片描述

关于v$pwfile_users的描述:

V$PWFILE_USERS lists all users in the password file, and indicates whether the user has been granted the SYSDBA, SYSOPER, and SYSASM privileges.

奇怪了,明明有密码文件,为什么这显示的记录是空?

4.回头再来看密码文件,Linux下密码文件的命名格式是orapw$ORACLE_SID,已存的文件名是orapwDEP,再看下ORACLE_SID:
这里写图片描述
我勒个去,ORACLE_SID是小写的dep,但文件却使用了大写,低级的错误。

接下来就比较简单了,重建密码文件:

orapwd file=orapwdep password=oracle entries=30

无论是远程,还是GC,都可以正常登录了。
这里写图片描述

总结
1.Oracle中有不少大小写敏感的参数设置,一定要仔细,否则就会产生各种困扰。
2.Oracle的密码文件实际定义了拥有sysdba等权限用户的列表,因此远程使用普通用户访问就不会受到密码文件的限制。
3.密码文件和v$pwfile_users两者关系,可以参考惜纷飞的这篇博文,使用各种实验说明了两者的关联。
xifenfei.com/2011/12/vpwfile_users和密码文件关系.html

kettle ora-01017是表示在使用kettle连接到Oracle数据库时出现了“ORA-01017: invalid username/password; logon denied”错误。这个错误通常是由于登录凭证(用户名和密码)被认为是无效的,而导致连接被拒绝。 出现kettle ora-01017错误的原因可能有以下几种情况: 1. 用户名或密码输入错误:登录Oracle数据库时,必须提供正确的用户名和密码。如果输入的用户名或密码有误,就会导致ORA-01017错误。请检查所提供的用户名和密码是否正确,并重新输入。 2. 用户账户被锁定:有时候,如果用户连续多次使用错误的密码进行登录,系统会将该用户账户锁定,以保护数据库的安全。在这种情况下,需要通过管理员账户解锁该用户,或者重置用户密码,并确保输入正确的凭证。 3. 数据库连接配置错误:另外,如果kettle连接配置中的数据库名、主机名、端口号等信息有误,也可能导致ORA-01017错误。在确认凭证无误的情况下,请检查连接配置中的相关信息是否正确,并进行必要的更正。 处理kettle ora-01017错误的方法如下: 1. 确认用户名和密码无误,并重新输入凭证。 2. 确认用户账户是否被锁定,如果是,联系管理员进行解锁或重置密码。 3. 检查kettle连接配置中的数据库连接信息是否正确,并进行必要的更正。 总之,kettle ora-01017错误是由于无效的凭证导致的连接拒绝错误。通过确认用户名、密码是否正确,用户账户是否被锁定,以及检查连接配置中的相关信息是否正确,可以解决这个错误
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值