sqlplus / as sysdba;
这样可以登入数据库,select sys/oracle@kfmian as sysdba;
这样不可以登入数据库,报错:
ERROR at line 1:
ORA-01994: GRANT failed: password file missing or disabled有没有人遇到过这样的问题,求分享。

解决方案 »

  1.   

    SQL*Plus: Release 11.1.0.6.0 - Production on Mon Nov 22 09:18:34 2010Copyright (c) 1982, 2007, Oracle.  All rights reserved.ERROR:
    ORA-01031: insufficient privileges这样的错
      

  2.   

    楼主0楼贴出的问题应该是密码文件不存在,如果你不是生产库的话,那么请先关闭数据库,然后重新创建密码文件,创建文件的方式如下:
    orapwd file='/path/pwdsid.ora' password= entries= 
    file:密码文件的路径,在windows下通常放在%ORACLE_HOME%/database/下,在linux下通常放在$ORACLE_HOME/dbs下.
    password:sys用户与public用户的密码.
    entries:最多支持多少个用户拥有sysdba与sysoper权限,这个最少填1.创建完以后,开启数据库,尝试新密码登陆.楼主1楼贴出的问题应该也是由于这个引起的,可以先尝试查询一下这个动态性能视图:V$PWFILE_USERS,它是显示拥有sysdba和sysoper权限的用户,按照你的情况应该这个表查询的结果为0行.
    正常情况如下:
    USERNAME                       SYSDB SYSOP
    ------------------------------ ----- -----
    SYS                            TRUE  TRUE
    RMANBACK                       TRUE  FALSE建议楼主可以先尝试一下第二个问题的视图,再关闭数据库创建密码文件,这样实践以后可以学到更多的东西.
      

  3.   


    sqlplus / as sysdba  登陆alter system set remote_login_passwordfile=exclusive sope=spfilestartup force
      

  4.   

    感谢2楼同志,按照你的方法,重建了密码文件,
    select * from v$pwfile_users;
    USERNAME SYSDB SYSOP SYSASM
    ------------------------------ ----- -----
    SYS TRUE TRUE FALSE只有一行,暂时好像没问题了,多问一下,这样改后以后不会再有什么问题吧?