上午遇到了个问题,在服务器本地可以以sys 登陆数据库,但是从我机器的客户端就登陆不了,提示错误:用户名密码出错。
但是其他的用户,则可以连接服务器。这样的话,肯定不是网络问题的。
百度的结果是 REMOTE_LOGIN_PASSWORDFILE的值为none;限制了远程登陆。
深度挖掘:(引用)
在Oracle数据库实例的初始化参数文件中,此参数控制着密码文件的使用及其状态。它可以有以下几个选项:
●remote_login_passwordfile=none
▲不使用密码文件登录(只能通过操作系统认证登录)。
▲不允许远程用户用sys登录系统。
▲可以在线修改sys的密码。
●remote_login_passwordfile=exclusive
▲只允许一个数据库使用该密码文件。
▲允许远程登录。
▲允许非sys用户以sysdba身份管理数据库。
▲可以在线修改sys的密码。
●remote_login_passwordfile=shared
▲可以多个数据库使用密码文件。实际上是这样的: Oracle数据库在启动时,首先查找的是orapw<sid>的口令文件,如果该文件不存在,则开始查找,orapw的口令文件,如果口令文件命名为orapw,多个数据库就可以共享。
▲允许远程登录。
▲只能用sys进行sysdba管理。
▲可以在线修改sys的密码。
我们可以通过show parameters remote_login_passwordfile来查看,也可以通过oracle_home/dbs/SPFILEORCL.ORA文件查看值。
如果值 为none 那就没错了,修改值为exclusive
SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
这样设置应该就没有问题了
以上仅供参考