ORA-01017 When Connect SYSDBA by SQL Developer

在尝试使用SQL Developer用SYSDBA连接数据库时总是报ORA-01017错误。

ORA-01017: invalid username/password; logon denied

实际上用户名密码是正确的,并且在数据库服务器上使用SQL*Plus通过监听连接也是正常的。

[sourcecode language=”sql” light=”true”]C:\Users\Kamus>sqlplus "sys/oracle@orcl11g as sysdba"

SQL*Plus: Release 11.1.0.7.0 – Production on Fri Mar 12 12:17:01 2010

Copyright (c) 1982, 2008, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 – Production
With the Partitioning, OLAP and Real Application Testing options

SQL> [/sourcecode]

真正的问题是因为数据库密码文件缺失了。在windows下,Oracle数据库密码文件是储存在%ORACLE_HOME%\database目录下,命名为PWD%SID%.ora。

密码文件不存在,数据库实例完全可以正常启动,只是在尝试通过监听登陆SYSDBA的时候就会报ORA-01017错误。

那么为什么在本地使用SQL*Plus是正常的,这实际上是一个错觉,因为在Windows中Oracle默认安装以后会在sqlnet.ora文件中设置SQLNET.AUTHENTICATION_SERVICES = (NTS),这表示支持“Windows NT native authentication”方式登陆数据库,也就是属于OSDBA组的Windows用户不用提供密码也可以通过SYSDBA登陆数据库。sqlnet.ora文件位于%ORACLE_HOME%\network\admin目录下。

我们随便使用一个不存在的用户名密码都是可以登录数据库的。

[sourcecode language=”sql” light=”true”]C:\Users\Kamus>sqlplus "NotExist/nopassword@orcl11g as sysdba"

SQL*Plus: Release 11.1.0.7.0 – Production on Fri Mar 12 13:10:49 2010

Copyright (c) 1982, 2008, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 – Production
With the Partitioning, OLAP and Real Application Testing options

SQL>[/sourcecode]

修改SQLNET.AUTHENTICATION_SERVICES参数为NONE之后。

SQLNET.AUTHENTICATION_SERVICES = (NONE)

再次测试用SQL*Plus登陆,报ORA-01031错误,即使提供正确的SYS用户密码也会报同样的错误,因为此时密码文件不存在,不能通过密码文件校验SYS用户密码是否正确,而又不允许通过NTS方式登陆数据库。

[sourcecode language=”sql” light=”true”]C:\Users\Kamus>sqlplus "NotExist/nopassword@orcl11g as sysdba"

SQL*Plus: Release 11.1.0.7.0 – Production on Fri Mar 12 13:14:07 2010

Copyright (c) 1982, 2008, Oracle. All rights reserved.

ERROR:
ORA-01031: insufficient privileges

Enter user-name:[/sourcecode]

重新创建密码文件,保持sqlnet.ora文件中SQLNET.AUTHENTICATION_SERVICES = (NONE)。

orapwd file=D:\oracle\product\11.1.0\db_1\database\PWDorcl11g.ora password=oracle

这样就只能通过正确的SYS用户和密码才可以用SYSDBA登陆数据库了。

[sourcecode language=”sql” light=”true”]C:\Users\Kamus>sqlplus / as sysdba

SQL*Plus: Release 11.1.0.7.0 – Production on Fri Mar 12 13:18:32 2010

Copyright (c) 1982, 2008, Oracle. All rights reserved.

ERROR:
ORA-01031: insufficient privileges

Enter user-name:
C:\Users\Kamus>
C:\Users\Kamus>sqlplus sys/oracle as sysdba

SQL*Plus: Release 11.1.0.7.0 – Production on Fri Mar 12 13:18:44 2010

Copyright (c) 1982, 2008, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 – Production
With the Partitioning, OLAP and Real Application Testing options

SQL>[/sourcecode]

同样在这种配置下,SQL Developer也可以正常用SYSDBA登陆数据库了。

ACOUG!

有感于国外Oracle用户组的发达,我跟eygle从今年开始尝试组建中国的Oracle用户组,All China Oracle User Group。我们的站点是acoug.org

我们希望能够为全中国的Oracle技术爱好者提供一个交流与活动的平台,我们希望能够激发更多人对于Oracle技术以及相关知识的兴趣,我们希望沉浸在这些技术中的人员获得更多的乐趣。这是我跟eygle一直以来的一个理想,但愿我们能为此付出并且有所回报。

我们认识到中国目前掌握Oracle技术的人员广度和深度都跟美国、欧洲甚或是印度存在着较大差距,这需要我们更有热情的去付出,但愿在不久的将来ACOUG在全球Oracle用户组中占据一席之地。

ACOUG计划定期举行线下活动,而线下活动也将是ACOUG未来工作的重点,邀请著名的业内人士(不仅限于国内)来进行主题演讲,并围绕相关主题进行广泛的讨论从而使更多人获益。

eygle的文章有关于ACOUG更多的阐述,请猛击这里

预计在这个月的3月20日(周六)开展ACOUG第一次线下活动,详细的地点、场地以及演讲主题还未确定,但是请有兴趣的朋友时刻关注ACOUG网站,欢迎参加。

NO .CN!

现在个人要注册并且使用一个cn域名,手续需要:
1. 购买域名,付费
2. 付费成功之后提供审核资料(包括一些打印件和身份证的扫描件)
3. 审核通过之后去工信部备案网站中自行备案
4. 备案成功之后域名开通

为此条款我特地致电了国内某域名注册商的客服。

Q:费用计费是从什么时候开始的?
A:从成功付费以后。

Q:那如果工信部备案拖了我几个月都备案不成功,这段时间如何补偿?
A:没有补偿。

Q:如果备案不成功怎么办?
A:那你就重复提交备案申请,总会成功的。

Q:如果我厌倦了备案的繁琐,决定放弃这个域名,既然你们自从我注册了这个域名之后就没有提供任何服务,可以退款吗?
A:抱歉,一旦付费成功了,就无法退款。

cao你大爷,贵国真是威武。老子惹不起总躲得起,本来一直说cn域名还代表咱是中国人,用着挺爱国的,但是从今以后决定不再注册任何cn域名。

做出这个决定,就好比方鸿渐老爹抱怨的那样“他爱国而国不爱他,大有青年守节的孀妇不见宠于翁姑的怨抑”,又跟五折叔说的那样怎么老是有种挥之不去的忧郁感呢?日你个麻哟。

最后看一眼工信部备案管理网站糟糕至极的用户体验。

1. “建议使用:1024 * 768 分辨率”,这种土掉渣的提示应该在进入21世纪以后就很少看到了吧。

2. “刷新验证码”这个链接是假的,毫无用处。不偷工减料会死啊。

3. 每个新网站必须要重新注册新用户才可以备案,即使登陆备案网站是通过用户名而不是网站名。也就是一个名下有10个网站的主办者需要注册10次才可以,这是什么脑子思考出来的模式?

4. 作为一个互联网域名备案的网上办公系统,毫无专业性。为什么“典型问题指南”是用弹出窗口这样被用户诟病了多年的方式来表达?为什么在用户登陆之后页面左侧的树状结构在Firefox和Chrome浏览器里面一团糟完全没法正常使用?

不知道这个网站用了多少钱造出来的,我只想说在如今这个年代大概再差劲的架站初学者应该也会比这个做的好看吧。