为何具有DBA权限的用户不能以SYSDBA登录?首先dba是一个角色,而sysdba是一个权限。dba角色包含了数据库中绝大多数的权限,但是不包括sysdba权限。
具有sysdba权限的用户可以打开或者关闭数据库。当数据库没有打开时,任何存储在数据库中的数据都是不可用的,因此dba角色无法包含sysdba权限。
oracle通过两种方法来完成权限的管理(即使在数据库关闭的状态),一、操作系统验证:具有dba组的用户都可以以sysdba身份登陆数据库。二、密码文件验证:把具有sysdba和sysoper权限的用户信息保存在加密的二进制文件中,用以验证用户身份。所以,具有dba角色和具有sysdba权限是两回事。

解决方案 »

  1.   

    用户sys不是系统默然的具有sysdba的权限吗?并且数据库是新建的,没有做过改动。
      

  2.   

    8.0.5 可能不是。好象internal才是
      

  3.   

    我也用internal 密码 oracle 试了,不过还是提示权限不够.
      

  4.   

    sys用户在数据库中的口令与在口令文件中的口令不符。
      

  5.   

    connect internal/oracle as sysdba
      

  6.   

    在sqlplus 中试一下!!
    connect sys/chanage_on_install as sysdba
      

  7.   

    connect internal/oracle as sysdba
    connect sys/chanage_on_install as sysdba
    两个我在9i中都用过,可以,不过8.0.5里不行
      

  8.   

    connect internal/oracle@service_name as sysdba
    connect sys/chanage_on_install@service_name as sysdba
      

  9.   

    我也遇到过同样的问题,是在劳拉病毒发作后出现的,他
    感染了我的20多个可执行文件,其中90%是Oracle的,
    用Sysdba确实登录不了,用Normal倒是行,呵呵。
    我是重做了一遍系统才恢复正常的!
      

  10.   

    oracle8德超级用户应该是internal/oracle,oracle9是sys.
      

  11.   

    在UNIX下面用ORACLE用户登陆
    WINDOWS这样直接可以用