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