本帖最后由 happytor 于 2009-11-16 13:34:20 编辑

解决方案 »

  1.   

    看一下你数据库的这个参数值是什么 
    show parameter REMOTE_LOGIN_PASSWORDFILE
      

  2.   


    先给system sysdba的权限,grant sysdba to system;
    然后开启REMOTE_LOGIN_PASSWORDFILE的设置为exclusive。
      

  3.   

    可以看看这个文章http://blog.csdn.net/inthirties/archive/2009/09/19/4565766.aspx
      

  4.   

    那你就在服务器端以DBA登录进去show parameter REMOTE_LOGIN_PASSWORDFILE;
    看看这个参数的值是什么
    值为NONE的时候代表必须使用操作系统验证才能以DBA身份登录
    可以通过以下命令设置为EXCLUSIVE或者SHAREDalter system set REMOTE_LOGIN_PASSWORDFILE=SHARED scope=spfile;
    完了重启数据库
    再从客户端进行连接试试
      

  5.   


    如果system没有sysdba的权限那么在服务端上直接登录怎么可以啊?
      

  6.   


    你的system用户肯定是有sysdba权限的,问题是你现在在客户端无法以sysdba身份登录啊。你先用show parameter REMOTE_LOGIN_PASSWORDFILE,看一下你的REMOTE_LOGIN_PASSWORDFILE这个参数值是什么,如果是none的话是不能用客户端以sysdba身份登录的。那就要修改参数的值并重启数据库生效。
      

  7.   

    我的不是NONE
    SQL> show parameter REMOTE_LOGIN_PASSWORDFILE;NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    remote_login_passwordfile            string      EXCLUSIVE
    SQL> 
      

  8.   


    system 莫认是没有sysdba权限的.
    只有dba权限
      

  9.   

    Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining optionsSQL> conn system/change_on_install@work as dba
    SP2-0306: 选项无效。
    用法: CONN[ECT] [logon] [AS {SYSDBA|SYSOPER}]
    其中 <logon>  ::= <username>[/<password>][@<connect_identifier>] | /
    SQL> 
      

  10.   

    如果是有没sysdba权限,为什么在服务器端可以使用system/change_on_install@work as sysdba来登录呢?
      

  11.   

    sys 用户默认没有,可能你后面赋予了他sysdba的权限.select * from v$PWFILE_USERS;
    察看哪些用户被授予 dba权限
      

  12.   

    错误提示的很清楚哦
    只能AS SYSDBA或者AS SYSOPER
    没有AS DBA这个写法的
      

  13.   

    http://blog.csdn.net/wh62592855/archive/2009/11/09/4791879.aspx
    Oracle sys和system用户、sysdba 和sysoper系统权限、sysdba和dba角色的区别楼主看看上面那篇文章