oracle中scott/tiger、sys、SYSDBA、system都是什么用


scott 是個演示用戶,是讓你學習ORACLE用的

SYSDBA 不是用戶,可以認為是個權限,超級權限
詳細點說吧
            超級用戶分兩種 SYSDBA和SYSOPT
SYSOPT 后面3個字母是operator的意思,也就是操作數據庫的人,而SYSDBA 則是管理數據庫的人
SYSDBA比SYSOPT的權限還要大,而SYS用戶就完全是個SYSDBA,但SYSTEM用戶默認是SYSOPT,不過它也能以SYSDBA的權限登陸

 

sys和system用戶區別

1)最重要的區別,存儲的數據的重要性不同

sys所有oracle的數據字典的基表和視圖都存放在sys用戶中,這些基表和視圖對於oracle的運行是至關重要的,由數據庫自己維護,任何用戶都不能手動更改。sys用戶擁有dba,sysdba,sysoper等角色或權限,是oracle權限最高的用戶。

 

system用戶用於存放次一級的內部數據,如oracle的一些特性或工具的管理信息。system用戶擁有普通dba角色權限。

 

2)其次的區別,權限的不同

system用戶只能用normal身份登陸em,除非你對它授予了sysdba的系統權限或者syspoer系統權限。
sys用戶具有“SYSDBA”或者“SYSOPER”系統權限,登陸em也只能用這兩個身份,不能用normal。

以sys用戶登陸Oracle,執行select * from V_$PWFILE_USERS;可查詢到具有sysdba權限的用戶,如:

SQL> select * from V_$PWFILE_USERS;
USERNAME SYSDBA SYSOPER
SYS TRUE TRUE


 

Sysdba和sysoper兩個系統權限區別

normal 、sysdba、 sysoper有什么區別
normal 是普通用戶
另外兩個,你考察他們所具有的權限就知道了
sysdba擁有最高的系統權限,登陸后是 sys
sysoper主要用來啟動、關閉數據庫,sysoper 登陸后用戶是 public


sysdba和sysoper屬於system privilege,也稱為administrative privilege,擁有例如數據庫開啟關閉之類一些系統管理級別的權限sysdba和sysoper具體的權限可以看下表:

 

系統權限
 sysdba
 sysoper
 
區別
 Startup(啟動數據庫)
 startup
 
Shutdown(關閉數據庫)
 shutdown
 
alter database open/mount/backup
 alter database open/mount/backup
 
改變字符集
 none
 
create database(創建數據庫)
 None不能創建數據庫
 
drop database(刪除數據庫)
 none
 
create spfile
 create spfile
 
alter database archivelog(歸檔日志)
 alter database archivelog
 
alter database recover(恢復數據庫)
 只能完全恢復,不能執行不完全恢復
 
擁有restricted session(會話限制)權限
 擁有restricted session權限
 
可以讓用戶作為sys用戶連接
 可以進行一些基本的操作,但不能查看用戶數據
 
登錄之后用戶是sys
 登錄之后用戶是public
 

 

 

system如果正常登錄,它其實就是一個普通的dba用戶,但是如果以as sysdba登錄,其結果實際上它是作為sys用戶登錄的,這一點類似Linux里面的sudo的感覺,從登錄信息里面我們可以看出來。因此在as sysdba連接數據庫后,創建的對象實際上都是生成在sys中的。其他用戶也是一樣,如果 as sysdba登錄,也是作為sys用戶登錄的,看以下實驗:

SQL> create user strong identified by strong;

用戶已創建。

SQL> conn strong/strong@magick 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';

OWNER

------------------------------

SYS


 

dba和sysdba的區別

dba、sysdba這兩個系統角色有什么區別呢

在說明這一點之前我需要說一下oracle服務的創建過程

創建實例→·啟動實例→·創建數據庫(system表空間是必須的)

啟動過程

實例啟動→·裝載數據庫→·打開數據庫

sysdba,是管理oracle實例的,它的存在不依賴於整個數據庫完全啟動,只要實例啟動了,他就已經存在,以sysdba身份登陸,裝載數據庫、打開數據庫。只有數據庫打開了,或者說整個數據庫完全啟動后,dba角色才有了存在的基礎!

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/wh62592855/archive/2009/11/09/4791879.aspx


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM