sys:擁有dba、sysdba、sysoper(系統操作員 )角色或許可權,是Oracle許可權最高的使用者,只能以sysdba或sysoper登入,不能以normal形式登入。
System:擁有dba、sysdba許可權或角色,可以以普通使用者的身份登入。
•【sysdba、sysoper、DBA區別】
Sysdba使用者: 可以改變字元集、建立刪除資料庫、登入之後使用者是SYS(shutdown、startup)
Sysoper:使用者不可改變字元集、不能創、刪資料庫、登陸之後使用者是PUBLIC (shutdown、startup)
DBA使用者:只有在啟動資料庫後才能執行各種管理工作。
Sysdba> Sysoper>普通的DBA
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具體的許可權可以看下錶:
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';
OWNER
------------------------------
SYS
Ø dba和sysdba的區別
dba、sysdba這兩個系統角色有什麼區別呢
在說明這一點之前我需要說一下oracle服務的建立過程
·建立執行個體→·啟動執行個體→·建立資料庫(system資料表空間是必須的)
啟動過程
·執行個體啟動→·裝載資料庫→·開啟資料庫
sysdba,是管理oracle執行個體的,它的存在不依賴於整個資料庫完全啟動,只要執行個體啟動了,他就已經存在,
以sysdba身份登陸,裝載資料庫、開啟資料庫。只有資料庫開啟了,或者說整個資料庫完全啟動後,dba角色才有了存在的基礎!