在PL/SQL Developer中建表:
第一种:
connect user/pass as sysdba;
create tabel tbname (id int(8),name varchar(10));
commit;第二种:
connect user/pass;
create tabel tbname (id int(8),name varchar(10));
commit;这两种方式建表为何不同啊 怎样才能使他们相同呢?还有就是:
connect user/pass as sysdba 下用select看不到 connect user/pass; 中建的表,反过来也是一样 看不到?
在Oracle Enterprise Manager中相应的用户下只能看到connect user/pass;中建的表 
这是为啥呢,有何办法能使他们统一呢?

解决方案 »

  1.   

    sysdba 是一个特权身份.并非user 这个用户所创建的.
    如果你非要看到.conn user/pass不要加as sysdba
      

  2.   

    同意楼上的,除非有必要,否则不要用sysdba身份来创建。
      

  3.   

    在有权限的情况下
    查询dba_tables查看表
    使用表全名schema_name.table_name来查看内容
      

  4.   

    因为角色的不同,所以,默认的表领域不同。
    通过访问数据字典dba_tables等等,你可知道他们都属于什么表领域下面。
    假如你有权限的话,添加上表领域的名字,就可以访问了。嗬嗬,什么原因,让你非要用上sysdba这个角色呀。赫赫。
      

  5.   

    在connect user/pass as sysdba 中 "user"和"pass"可以是任意的合法字符
    以这种方式,无论用什么样的用户名和密码登陆,登陆的用户都是 SYS 。
    可以在登陆后使用  show user; 显示 User is "SYS"而以connect user/pass 方式登陆 登陆的用户是 user
    show user ; 显示的是 User is "user";所以以上两种登陆方式实际上是两个不同的用户,因此用一般的方法不能相互察看得到。SYS用户是Oracle中的一个超级用户.数据库中的所有数据字典和视图都存储在SYS模式中。
    一般不建议在这该用户下建表。
      

  6.   

    使用as sysdba方式登陆则默认登陆到sys用户下;
    你到企业管理器的sys用户下可以查看到对应的表对象。
      

  7.   

    1.connect user/pass as sysdba
    sql> select user from dual 
    USER
    ------------------------------
    SYS
    2.connect user/pass 
    sql>  select user from dual 
    USER
    ------------------------------
    USER---------------------
    如果加上 as sysdba,不管以什么身份登录,都显示的是 SYS 用户,而不是用户本身
    那么两个表的所有者是不同的,所有不能看到表
      

  8.   

       原来sysdba 是一个特权身份!