轉自:http://blog.sina.com.cn/s/blog_6eee53080100mty9.html
一:最重要的區別,存儲的數據的重要性不同
【sys】 所有oracle的數據字典的基表和視圖都存放在sys用戶中,這些基表和視圖對於oracle的運行是至關重要的,由數據庫自己維護,任何用戶都不能手動更改。sys用戶擁有dba,sysdba,sysoper等角色或權限,是oracle權限最高的用戶。
【system】 用戶用於存放次一級的內部數據,如oracle的一些特性或工具的管理信息。system用戶擁有普通dba角色權限。
二:其次的區別,權限的不同。
【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
SYSTEM TRUE FALSE
三:dba和sysdba的區別
dba、sysdba這兩個系統角色有什麼區別呢
在說明這一點之前我需要說一下oracle服務的創建過程
·創建實例→·啓動實例→·創建數據庫(system表空間是必須的)
啓動過程
·實例啓動→·裝載數據庫→·打開數據庫
sysdba,是管理oracle實例的,它的存在不依賴於整個數據庫完全啓動,只要實例啓動了,他就已經存在,以sysdba身份登陸,裝載數據庫、打開數據庫。只有數據庫打開了,或者說整個數據庫完全啓動後,dba角色纔有了存在的基礎!
四: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
|