一个低级的ORA-01017错误

事件缘由

使用sys账户创建了一个数据清理的存储过程,再创建一个Oracle job定时运行这个存储过程,用于做表数据的清理。第二天看表数据未删除,说明job执行有错,打算使用sys账号登录查看job运行情况,反复输入sys账户信息,总提示ORA-01017,

1.尝试改sys用户密码,重试报错依旧。

2.使用sys登录GC,报错相同。使用普通用户登录正常。

3.数据库服务器上使用sqlplus sys/[email protected] 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

时间: 2024-12-28 10:39:39

一个低级的ORA-01017错误的相关文章

关于实现数据查询条件输入功能的一个低级错误

我们常常要实现检索数据的功能.复杂的查询条件输入,最好有辅助输入功能,能帮助使用者更轻松的完成查询条件输入.最近我们见到一个查询条件输入功能实现的时候犯的一个低级错误,觉得在新手中可能会典型,故拿出来说一下. 有个查询基站监控历史数据的功能,要查基站的历史数据,先得选择几个基站.第一个版本查询条件很简单,只需按站名或地区搜索基站,在结果集中选中一个或多个站,再输入其他查询条件.第二个版本,客户要求增加基站的基础信息作为查询条件,比如郊区还是市区,墙体材料等等,这些条件影响基站的冷却所需的能耗.这

今天才发现,自已犯了一个低级的逻辑错误,不可原谅

一个应用提交审核几天了,晚上在斗地主突然弹出提示,审核没有通过:因应用中一个页面显示为空白页. 我当时就晕了,之前测试的时候也有一二个用户跟我反应过,我当时没太注意,因为我这边测试正常. 开始一行一行查代码,找原因,花了差不多一个小时,终于找到原因: 一个低级的逻辑错误. m = 0 n = 1    if m = 0 then     response.write("m 等于 0") else        response.write("m 不等于 0")   

[python]一个低级错误/xxx instance has no attribute 'xxx'/'module' object is not callable

今天在写代码的时候出现了以下两个错误: TypeError: 'module' object is not callable AttributeError: excelChange instance has no attribute 'xlBook' 上网一查,发现第一个错误是由于python中有两种不同的引用方式 import xxx 和 from xxx import *,前者在代码中引用时需要加上模块名和具体的方法或属性,具体方法如下: import catchForm self.xls

服务器登录界面出现错误提示框 “在系统启动时至少有一个服务或驱动程序产生错误。"

服务器登录界面出现错误提示框 "在系统启动时至少有一个服务或驱动程序产生错误.详细信息,请使用事件查看器查看事件日志." 1.开始 运行 regedit.exe 打开注册表: 2.找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows 3.修改 NoPopUpsOnBoot 的值为"1",没有的话就新建1个dword 值.

未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项。参数错误。 (异常来自 HRESULT:0x80070057 (E_INVALIDARG))

未能加载文件或程序集“Antlr3.Runtime”或它的某一个依赖项.参数错误. (异常来自 HRESULT:0x80070057 (E_INVALIDARG)) 别的办法都没用,直接删除出问题的dll,再重新引用就好了. 位置:C:\Program Files (x86)\Microsoft Web Tools\Packages\WebGrease.1.1.0\lib

未能加载文件或程序集“Antlr3.Runtime”或它的一个依赖项。参数错误

"/"应用程序中的服务器错误. 未能加载文件或程序集"Antlr3.Runtime"或它的某一个依赖项.参数错误. (异常来自 HRESULT:0x80070057 (E_INVALIDARG)) 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.IO.FileLoadException: 未能加载文件或程序集"Antlr3.Runtime&quo

一天一个Java基础——通过异常处理错误

<Thinking in Java>上对这章的讲解不少,可见重要性,学习和总结一些主要的记录下来. 一.创建自定义异常 1 package Exception; 2 3 class SimpleException extends Exception{} 4 5 public class InheritingException{ 6 7 public void f() throws SimpleException { 8 System.out.println("Throw Simple

HAProxy出现&quot;远程主机强迫关闭了一个现有的连接 &quot; 的错误及解决

使用haproxy作为sql server 的负载均衡器. 使用了文档中的示例配置项: timeout client 50s        timeout server 50s 采用这个配置项,有时会出现“远程主机强迫关闭了一个现有的连接”的错误. 出现这个错误的原因是:一旦sql client超过50s没有给haproxy发送数据,则haproxy会关闭这个连接,此时sql client中的以为连接还是通的,此时发送数据就会出现异常. 在查看了HAProxy的官方文档,以及mysql和sql

一个分号所引发的错误

最近复习到数据结构中图这一章节了.今天复习到图的遍历了. 代码非常简单 1 void print(Graph *G) 2 { 3 int i, j; 4 for(i = 1; i <= G->vexNum; i++) 5 { 6 for(j = 1; j <= G->vexNum; j++); 7 { 8 printf("%d ", G->vex[i][j]); 9 } 10 printf("\n"); 11 } 12 for (i =

深入理解闭包系列第四篇——常见的一个循环和闭包的错误详解

前面的话 关于常见的一个循环和闭包的错误,很多资料对此都有文字解释,但还是难以理解.本文将以执行环境图示的方式来对此进行更直观的解释,以及对此类需求进行推衍,得到更合适的解决办法 犯错 function foo(){ var arr = []; for(var i = 0; i < 2; i++){ arr[i] = function(){ return i; } } return arr; } var bar = foo(); console.log(bar[0]());//2 以上代码的运行