共計 2049 個字符,預計需要花費 6 分鐘才能閱讀完成。
這篇文章主要介紹“sysdba、dba 和 sysoper 的區別是什么”,在日常操作中,相信很多人在 sysdba、dba 和 sysoper 的區別是什么問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”sysdba、dba 和 sysoper 的區別是什么”的疑惑有所幫助!接下來,請跟著丸趣 TV 小編一起來學習吧!
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(恢復數據庫)
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 角色才有了存在的基礎!
到此,關于“sysdba、dba 和 sysoper 的區別是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注丸趣 TV 網站,丸趣 TV 小編會繼續努力為大家帶來更多實用的文章!