天天看點

ORACLE 使用者、權限、角色差別

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

改變字元集

none

create database(建立資料庫)

None不能建立資料庫

drop database(删除資料庫)

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

本文轉自:http://blog.chinaunix.net/uid-25892360-id-2876820.html