scott 是個示範使用者,是讓你學習Oracle用的
hr使用者是個樣本使用者,是在建立資料庫時選中“樣本資料庫”後產生的,實際就是類比一個人力資源部的資料庫。
SYSDBA 不是使用者,可以認為是個許可權,超級許可權。預設中sys就擁有這種超級許可權,是許可權最高的使用者。
詳細點說吧
超級使用者分兩種 SYSDBA和SYSOPT
SYSOPT 後面3個字母是operator的意思,也就是操作資料庫的人,而SYSDBA 則是管理資料庫的人
SYSDBA比SYSOPT的許可權還要大,而SYS使用者就完全是個SYSDBA,但SYSTEM使用者預設是SYSOPT,不過它也能以SYSDBA的許可權登陸
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
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角色才有了存在的基礎!