oracle中sys用戶和system用戶的區別


一、最重要的區別:存儲數據的重要性不同

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

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

二、其次的區別:權限的不同

【 system 】用戶只能用 normal 身份登陸 em ,除非你對它授予了 sysdba 的系統權限(grant sysdba to system)或者 sysoper 系統權限。
【 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;

 


免責聲明!

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



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