Oracle sys和system用戶、sysdba 和sysoper系統權限、sysdba和dba角色的區別

sys和system用戶區別數據庫

1)最重要的區別,存儲的數據的重要性不一樣session

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

 

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

  

2)其次的區別,權限的不一樣工具

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

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

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

 

 

Sysdba和sysoper兩個系統權限區別orm

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角色纔有了存在的基礎

相關文章
相關標籤/搜索