以sys和服务器登录密码连接服务器上oracle时出现了ora-01017的错误,在网上搜了,发现一片解释很好的博文,借以转载,方便大家学习,也方便自己以后回顾。                                                           转:今天在远程登录我们的外网ORACLE服务器时出现 ORA-01017: invalid username/password; logon denied 错误,但是在本地登录时USERNAME,PASSWORD都是对的。在反复试验多次,并上网查询问题原因后,问题得到了解决:
  在本地登录,修改SYS用户名(可以改成一样的),应用,在远程登录成功。
  原因:
在数据库没有启动之前,数据库内建用户是无法通过数据库来验证身份的。
  口令文件中存放sysdba/sysoper用户的用户名及口令,允许用户通过口令文件验证,在数据库未启动之前登陆,从而启动数据库。
  如果没有口令文件,在数据库未启动之前就只能通过操作系统认证.
  如果是远程sysdba登陆,需要通过passwordfile认证.
  PFILE文件中有个参数remote_login_passwordfile 对passwordfile进行控制,当
  remote_login_passwordfile=NONE时
  停用口令文件验证,Oracle数据库不允许远程SYSDBA/SYSOPER身份登录,无法通过远程进行数据库起停等操作管理;
  remote_login_passwordfile=exclusive时
  启用口令文件,允许远程登录;
  remote_login_passwordfile = shared时
  多个数据库可以共享一个口令文件,但是只可以识别一个用户:SYS;
 当口令文件丢失时,用/NOLOG方式登录,通过orapwd重建口令文件来解决

如果口令文件丢失,可以使用orapwd可以重建口令文件,语法如下:

[oracle@jumper oracle]$ orapwd

  Usage: orapwd file=<fname> password=<password> entries=<users>

  以EXCLUSIVE 方式启动以后,实例名称信息被写入口令文件.
此时如果有其他实例以Exclusive模式启动仍然可以使用这个口令文件,口令文件中的实例名称同时被改写.也就是说,数据库只在启动过程中才读取口令文件,数据库运行过程中并不锁定该文件,类似于pfile/spfile文件.
  注意此时可以增加SYSDBA用户,并且这些信息可以被写入到口令文件.

  一旦口令文件中增加了其他SYSDBA用户,此文件不再能够被其他Exclusive的实例共享.

实际上,口令文件对于其他用户来说就是启到了一个 sudo 的作用.

问题分析:
  远程不能登录的原因其实还不清楚,因为ORACLE的PFILE文件   remote_login_passwordfile=exclusive是对的,没有动过。产生问题的原因在于口令文件中记录的SYS用户口令于本地登录时用的口令不符了,问题是什么原因会导致本地登录的口令会与口令文件中记录不符呢?
另记:oracle用户初始口令:
   internal/oracle  
  sys/change_on_install  
  system/manager  
  scott/tiger  
  sysman/oem_temp