欢迎来到天天文库
浏览记录
ID:6066026
大小:61.00 KB
页数:14页
时间:2018-01-01
《oralce关于密码文件研究与疑问》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、关于密码文件研究与疑问?平台: server端;SUSE9 + oracledb10.2.0.1。 client端:windowsxp+oracleclient10.2.0.1。 下面的tns_connect_string是指windows端的tnsnames.ora文件中配置的连接串。过程1.确保suse上没有密码文件。在suse端启动实例和listener后。在windows端用"sqlplussys/oracle@tns_connect_stringassysdba"连接。结果登录失败。报“insufficientprivileges”。 说明能够连接,
2、只是没有密码文件而无法认证。2.在suse上的oracle创建密码文件(含sys用户)。确认remote_login_passwordfile=EXCLUSIVE后重新启动实例(listener也启动)。这是再在windows上用"sqlplussys/oracle@tns_connect_stringassysdba"连接。结果登录成功吗,并且可以用sysdba的权限进行各种操作,包括shutdown。说明在instance和listener启动时,且密码文件存在时,可以远程以sysdba身份连接到数据库(并由密码文件认证而不是数据库内部)。3.在suse端停止inst
3、ance而不停listener。再在windows上用"sqlplussys/oracle@tns_connect_stringassysdba"连接。结果无法连接,报“ORA-12514:TNS:监听程序当前无法识别连接描述符中请求的服务”。问题出来了:难道用密码文件方式认证需要先启动instance??4.查阅资料,根据oracle副总写的那个oracle编程艺术上讲的,应该server端未启动instance时,密码文件也可以认证。我个人从理论分析也觉得oracle副总说的是对的,因为密码文件的存在的价值就是为了解决在数据库没有open前,远程操作数据的用户登录认证
4、问题。假如需要在server端先启动instance,密码文件才能认证,那密码文件存在的价值就大大的打折了。 但是我从我前面的基本操作看,为什么不行呢?? 请大家指点??? 这个问题也很好重现,按照上面的做一下就可以了。我之前也有遇到这样的问题,我的问题是出在监听的名称上,当数据库shutdown以后查看监听的status。LSNRCTL>statusConnectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))STATUSoftheLISTENER------------------------Alias
5、 LISTENERVersion TNSLSNRforLinux:Version10.2.0.1.0-ProductionStartDate 13-MAY-200800:43:24Uptime 0days0hr.1min.20secTraceLevel offSecurity ON:LocalOSAuthenticationSNMP OFFListenerParameterFile /u01/app/oracle/product
6、/10.2.0/db_1/network/admin/listener.oraListenerLogFile /u01/app/oracle/product/10.2.0/db_1/network/log/listener.logListeningEndpointsSummary... (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=man.uplooking.com)(PORT=1521)))ThelistenersupportsnoservicesThecommandcompletedsuccessfully这里可以看到
7、,监听不支持任何的服务Thelistenersupportsnoservices。所以这个时候外界是连接不上server的。如果启动了数据库,情况就有所不同LSNRCTL>statusConnectingto(ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))STATUSoftheLISTENER------------------------Alias LISTENERVersion TNSLSNRforLinux:Version10.2.0.1
此文档下载收益归作者所有