session1:
打开[运行],输入:sqlplus /nolog
SQL> conn sys/sys@myoracle as sysdba;
SQL> create user rich identified by rich;
用户已创建session2:
打开[运行],输入:sqlplus /nolog
SQL> conn rich/rich@myoracle as sysdba;
登录成功
SQL> show user;
USER 为"SYS"疑问:
从session2的运行结果感到疑问,既然登录成功,为何USER却为SYS ?

解决方案 »

  1.   

    你是OS认证的、而且as sysdba进入的
    当然是sys
    你这是和conn / as sysdba的本质一样
    去掉as sysdba
      

  2.   

    conn rich/rich@myoracle as sysdba;
     关键是后面的as sysdba,oracle就是认为你是以sys用户登录了。
    你可以这样,用conn rich/rich;然后用 show user;
    结果肯定显示 USER 为"RICH"
      

  3.   

    但这样一来,问题就出现了,本来rich是没有任何权限的,可现在这样一搞,却变成了sys用户登录了,可以shutdown及startup了,不是有问题了吗?
      

  4.   

    是sys用户有权限 rich没权限   你这里没用rich登录
      

  5.   

    首先,rich是没有sys权限的(如果你没分配权限给rich)。
    其次,你用conn [a]/[b] as sysdba  登录sqlplus的话,
         不管[a]和[b]是什么字符,实际上都是用sys用户登录的。
    然后,conn / as sysdba是OS认证,只有拥有你的操作系统权限的用户才能使用,
        不用担心非法入侵。
      

  6.   

    说白了,你加了as sysdba登陆了sys用户,rich用户没登陆