ITPub博客

首页 > 数据库 > Oracle > as sysdba 登录后找不到以前的表

as sysdba 登录后找不到以前的表

原创 Oracle 作者:diashad 时间:2015-04-10 16:11:33 0 删除 编辑

as sysdba 登录后找不到以前的表

 创建时间: 2015-4-10 16:02  修改时间: 2015-4-10 16:09 
  今天一学生说,用sysdba登入后发现此用户下的表都找不到,不用sysdba登入后就发现有,问有什么原因,先模拟下。

SQL> conn / as sysdba
Connected.
SQL> grant sysdba to scott;

Grant succeeded.

SQL> conn / as sysdba
Connected.
SQL> alter user scott identified by tiger;

User altered.

SQL> conn scott/tiger;
Connected.
SQL> select * from tab;

TNAME                          TABTYPE  CLUSTERID
------------------------------ ------- ----------
BONUS                          TABLE
DEPT                           TABLE
EMP                            TABLE
MLOG$_STU                      TABLE
RUPD$_STU                      TABLE
SALGRADE                       TABLE
STU                            TABLE

7 rows selected.

SQL> select count(*) from dept;

  COUNT(*)
----------
         4

SQL> conn scott/tiger as sysdba
Connected.
SQL> select count(*) from dept;
select count(*) from dept
                     *
ERROR at line 1:
ORA-00942: table or view does not exist

看看真的找不到了。
找了官方文档。

当你用sysdba登入时,你链接使用了一个default schema,不是你用户所关联的schema.大家了解了吗?



其实你用show user,可以看到。
SQL> conn scott/tiger as sysdba
Connected.
SQL> select count(*) from dept;
select count(*) from dept
                     *
ERROR at line 1:
ORA-00942: table or view does not exist


SQL> show user

SQL> show user
USER is "SYS"

大家理解了吗。。。。。。。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/203348/viewspace-1562390/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2011-08-08

  • 博文量
    86
  • 访问量
    442777