只要以sysdba连接,用户事实上就是sys

解决方案 »

  1.   

    我现在要试验并发控制,那我想问用以上的sys和linhaiwen用户名分别同时连接到服务器,我有一个employee表是sys用户的表,我操做如下:
    SQL> grant all on employee to linhaiwen
      2  /授权成功。(我是在个人机子上)那这样我分别打开两个sql*plus的worksheet,其中一个用sys登陆,一个用linhaiwen登陆,分别要对employee表的记录做修改,这样算是一个用户(鉴于 jiezhi(西域浪子)所说, 只要以sysdba连接,用户事实上就是sys)sys,还是算是两个用户sys和linhaiwen在分别对表employee进行修改啊
      

  2.   

    不同的连接后,使用这句看看:
    SELECT USER, UID FROM DUAL;
      

  3.   

    SQL>  connect sys/lin@lhw as sysdba
    已连接。
    SQL> SELECT USER, UID FROM DUAL;USER                                  UID
    ------------------------------ ----------
    SYS                                     0
    SQL>  connect linhaiwen/lin@lhw as sysdba
    已连接。
    SQL> SELECT USER, UID FROM DUAL;USER                                  UID
    ------------------------------ ----------
    SYS                                     0
      

  4.   

    在自己一台机子上如何创建两个用户,通过打开两个sqlplus worksheet分别登陆这两个不同的用户来验证并发控制啊,为什么上面sys和linhaiwen用户同时登陆后,用的SELECT USER, UID FROM DUAL;显示出来的uid怎么是一样的阿
      

  5.   

    呵呵,我用
    SQL> grant sysoper to linhaiwen
      2  /授权成功。
    SQL>  connect linhaiwen/lin@lhw as sysoper
    已连接。
    SQL> SELECT USER, UID FROM DUAL;USER                                  UID
    ------------------------------ ----------
    SYS                                     1
    改变角色后登陆uid就变了,但是这时候我在linhaiwen这个sqlplus的worksheet上用了
    desc employee  显示
    ORA-04043: 对象 employee 不存在怎么会这样啊
      

  6.   

    为何已经grant all on employee to linhaiwen
    授权成功。
    connect linhaiwen/lin@lhw as sysoper
    已连接。
    SQL>desc employee  
    ORA-04043: 对象 employee 不存在
    急人啊
      

  7.   

    刚才试了一下
    connect linhaiwen/lin@lhw as sysoper
    已连接。
    create table  t1
       (a  varchar2(20),
        b  number);
    竟然显示
    create table  t1
    *
    ERROR 位于第 1 行:
    ORA-01918: 用户'PUBLIC'不存在
    sysoper 身份怎么变成什么public了,还不能建表,估计也是因为连表都不能建,故而给了它
    grant sysoper to linhaiwen后
    SQL>desc employee  
    ORA-04043: 对象 employee 不存在
    高手门啊,我的目的就是实现在同一台机子上,通过打开两个sqlplus worksheet分别登陆这两个不同的用户来验证并发控制啊,给电建议吧
      

  8.   

    用sysdba登陆后,不管你使用的什末用户名,都是以sys的身份工作,建的表都是在sys的默认表空间中,表的拥有者都是sys,而不是你登陆用的用户名
    你可以在不加sysdba的情况下用select user from dual
    和select count(*) from tab来验证一下你用1个用户名 同时打开两个sqlplus worksheet登陆,同时访问1个表不就可以了吗
      

  9.   

    1个用户名 同时打开两个sqlplus worksheet登陆,同时访问1个表,只有一个用户是达不到并发控制的
      

  10.   

    可以在建一个用户,把要操作的表的权限全给了另一个用户,2个用户同时访问,操作
    你是这个意思吧
    (user2)grant all on table1 to user1;(user1)select * from user2.table1;