设置remote_login_passwordfile=exclusive

解决方案 »

  1.   

    这是正常的,你不用密码也应该能连接上
    因为选择操作系统认证方式,等于把权限交给了操作系统
    只要可以进入操作系统,都可以操作oracle
    不建议使用操作系统 认证方式
      

  2.   

    quote:
      <<
         只要可以进入操作系统,都可以操作oracle
      >>  说法错误!
      
      进入操作系统的用户必须属于ora_dba组,才能以sysdba身份连接数据库实例   
      

  3.   

    谢谢zmgowin(隐者) ,你说的是用口令文件的验证方式吧。谢谢lcong(三万英尺) and  gaosikai() ,进入操作系统的用户必须属于ora_dba组,才能以sysdba身份连接数据库实例,否则:
      SQL> connect / as sysdba
      ERROR:
      ORA-01031: insufficient privileges
    或者:
      SQL> connect sys/ as sysdba
      请输入口令:
    只有在输入口令后才能登录。
    谢谢drabit(square),还想问一下:在确定用操作系统验证方式时,为什么还能以
    connect sys/password as sysdba这样的方式进行连接?迷惑中......
      

  4.   

    to saint13(小新): <<在确定用操作系统验证方式时,为什么还能以
     connect sys/password as sysdba这样的方式进行连接?迷惑中......>>
      
     既然是操作系统认证,那么你输入任何口令/密码(甚至是connect saint13/c3fdsf43 as sysdba)都可以以sysdba登录数据库,因为你的sysdba身份已经通过操作系统得到了认证。
      

  5.   

    connect / as sysdba是属于操作系统登陆方式\
    口令文件认证方式 connect username/password as sysdba
      

  6.   

    to  zhaokeke2004(爱拼才会赢):
      
      你的说法错误!  认证方式是在sqlnet。ora中设置的!
      

  7.   

    在sqlnet.ora中设置为操作系统认证时,用sys/password虽然可以连上,
    但如果用startup时用的是设置为操作系统验证方式的初始化参数文件,是没有权限启动instance的.why?
      

  8.   

    quote :
     〈但如果用startup时用的是设置为操作系统验证方式的初始化参数文件〉
      
      啥意思?操作系统认证方式下,初始化文件参数remote_login_passwordfile不起作用
      

  9.   

    谢谢 drabit(square) 
    在connect到oracle之后,//connect sys/password as sysdba
    不是要进行startup操作吗,//startup [pfile=....]
    在startup 时用的初始化参数文件(可以指定,也可以用默认位置的)
    中的remote_login_passwordfile参数如果是none(操作系统认证方式)
    则提示权限不足,
    //前提是:sqlnet.ora中设置为NTS(操作系统验证方式)//
    你试试,会不会是我的其他设置有问题。
      

  10.   

    sqlnet.ora中的内容如下:
    # SQLNET.ORA Network Configuration File: F:\oracle9i\server\network\admin\sqlnet.ora
    # Generated by Oracle configuration tools.SQLNET.AUTHENTICATION_SERVICES= (NTS)NAMES.DIRECTORY_PATH= (TNSNAMES, ONAMES, HOSTNAME)
    操作:
    SQL> connect sys/ as sysdba
    请输入口令:          //我在这输入了错误的sys口令;
    ERROR:
    ORA-01031: insufficient privileges
    SQL> connect sys/password as sysdba   //password是sys的正确的密码;
    已连接到空闲例程。
    SQL> startup pfile='F:\oracle9i\server\database\none.ora';
                                   //none.ora中的remote_login_passwordfile=none
    ORA-01031: insufficient privileges
    SQL> startup pfile='F:\oracle9i\server\database\exclusive.ora';
                            //exclusive.ora中的emote_login_passwordfile=exclusive
    ORACLE 例程已经启动。Total System Global Area  114061244 bytes
    Fixed Size                   282556 bytes
    Variable Size              79691776 bytes
    Database Buffers           33554432 bytes
    Redo Buffers                 532480 bytes
    数据库装载完毕。
    数据库已经打开。
    SQL>
      

  11.   

    to saint13(小新):  根据你贴出来的信息,虽然你设置了SQLNET.AUTHENTICATION_SERVICES= (NTS),但是你实质上并没有用到操作系统认证。  你当前登录windows的用户不属于windows的ora_dba组。  SQLNET.AUTHENTICATION_SERVICES= (NTS)是进行os认证的先决条件,登录windows的用户属于windows的ora_dba组是必要条件,其中一个不满足,oracle会采用密码文件认证。