sysdba登入oracle的schema是sys

cnhtm發表於2010-02-01

當使用sysdba或sysoper特權登入oracle資料庫的時候,會使用預設的schema,並不是使用登入資料庫的時候指定的使用者的schema。
sysdba的預設schema是sys
sysoper的預設schema是public

(b14231 第60頁)

下面是一個檢驗如上說法的例子

[@more@]

登入資料庫

ora_test@oracle[/home/oracle]> sqlplus / as sysdba

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Feb 2 19:01:04 2010

Copyright (c) 1982, 2005, Oracle. All rights reserved.


Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

建立測試使用者test,併為測試使用者分配dba和sysdba許可權

sys@CNHTM> create user test identified by test
2 default tablespace users;

User created.

sys@CNHTM> grant dba to test;

Grant succeeded.

sys@CNHTM> grant sysdba to test;

Grant succeeded.

用test使用者登入,並建立表 admin_test

sys@CNHTM> conn test/test
Connected.
test@CNHTM> show user
USER is "TEST"
test@CNHTM> create table admin_test(name VARCHAR2(20));

Table created.

用test使用者,以sysdba特權登入

test@CNHTM> conn test/test as sysdba
Connected.

顯示使用者,顯示為sys

sys@CNHTM> show user
USER is "SYS"

檢查剛才建立的表,發現無法找到,因為那個表在test schema下,而現在在sys schema下

sys@CNHTM> select * from admin_test;
select * from admin_test
*
ERROR at line 1:
ORA-00942: table or view does not exist

--end--

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22049049/viewspace-1031078/,如需轉載,請註明出處,否則將追究法律責任。

相關文章