system如果正常登录,它其实就是一个普通的dba用户,但是如果以as sysdba登录,其结果实际上它是作为sys用户登录的,这一点类似Linux里面的sudo的感觉,从登录信息里面我们可以看出来。因此在as sysdba连接数据库后,创建的对象实际上都是生成在sys中的。其他用户也是一样,如果 as sysdba登录,也是作为sys用户登录的,看以下实验:
SQL> create user strong identified by strong;
用户已创建。
SQL> conn [email=strong/strong@magick]strong/strong@magick[/email] as sysdba;
已连接。
SQL> show user;
USER 为 "SYS"
SQL> create table test(a int);
表已创建。
SQL> select owner from dba_tables where table_name='test';
未选定行 //因为创建表时oracle自动转为大写,所以用小写查的时候是不存在的;
SQL> select owner from dba_tables where table_name='TEST';