1、我们都知道,Oracle有两个具有dba角色的用户,分别是sys与system,他们都可以以sysdba身份登录数据库。既然system具有dba角色,为什么还分配他sysoper身份?
2、对于普通用户,例如store用户,为什么允许他可以这样conn store/tiger as sysdba的方式登录?普通用户可以以sysdba身价登录,岂不是避开了对普通用户的限制,让他可以以sys身份访问任何数据和进行任何操作?希望好心的朋友给个解答,不知道的,请不要回帖?

解决方案 »

  1.   

    1、我们都知道,Oracle有两个具有dba角色的用户,分别是sys与system,他们都可以以sysdba身份登录数据库。既然system具有dba角色,为什么还分配他sysoper身份?【sys】所有oracle的数据字典的基表和视图都存放在sys用户中,这些基表和视图对于oracle的运行是至关重要的,由数据库自己维护,任何用户都不能手动更改。sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
    【system】用户用于存放次一级的内部数据,如oracle的一些特性或工具的管理信息。system用户拥有普通dba角色权限。
    2)   其次的区别,权限的不同。
    【system】用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限。
    【sys】用户具有“SYSDBA”或者“SYSOPER”系统权限,登陆em也只能用这两个身份,不能用normal。 
      

  2.   

    sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
    用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限
      

  3.   

    普通用户虽然可以按你说的那种以dba身份登录,但问题是是否能登录成功?
    如果登录不成功就算给他以sysdba登录又怎样?还不是没用.
    兄弟,其实你想想也就好了。
      

  4.   

    其实,conn system/manager这样登录的system用户也只有普通用户权限.除非是声明as sysdba.
    普通用户如果以sysdba登录,比如楼主说的conn store/tiger as sysdba,这样应该是无法成功的.
    还有就是,根据Oracle数据库的配置,一般情况下,as sysdba在远程计算机上是不允许的,即使是system用户.因此,Oracle10g的EM默认配置下system也是不能以sysdba登录的.我还见过因设置不当的Oracle8i在本地计算机上system也得不到sysdba权限.囧
      

  5.   

    我是在我机子上装着玩的,在本地普通用户为什么可以以as sysdba登陆啊?以怎么改配置呢?
    这个身份登陆后,其实还是sys用户?
      

  6.   

    Oracle登录的时候有两种认证方式,一种是“操作系统认证”,一种是“口令文件认证”。
    1、当采取操作系统认证的时候,在本地用任何用户都可以以sysdba登陆;(默认方式)
    2、当采取口令文件认证的时候,就不是任何用户都可以用sysdba登陆了,这个时候必须输入正确的用户名口令才可以(其实这种方法才是安全的)
    3、至于你本地的到底采用哪种认证方式,是可以通过parameter来设置的。我以前用过,但是现在本机没有服务端环境了,具体如何设置,你可以百度一下。
      

  7.   

    sys用户拥有dba,sysdba,sysoper等角色或权限,是oracle权限最高的用户。
    用户只能用normal身份登陆em,除非你对它授予了sysdba的系统权限或者syspoer系统权限
      

  8.   


    oracle有三种验证登陆机制 还有一只是数据库验证,
    对于LZ你说的问题,你是在windows下把 你把windwos用户组里的ora_dba这个组删除或者改参数文件 不使用操作系统验证方式, 你就能明白了,当然前提是你在测试环境下。
      

  9.   

    SQL> conn sys/oracle@orcl as sysdba;
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as sys@orcl AS SYSDBA
     
    SQL> show user;
    User is "SYS"
     
    SQL> conn scott/scott@orcl as sysdba;
    Connected to Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 
    Connected as scott@orcl AS SYSDBA
     
    SQL> show user;
    User is "SYS"
     
    SQL>