Sys和system用户、sysdba 和sysoper系统权限、dba角色的区别
生活随笔
收集整理的這篇文章主要介紹了
Sys和system用户、sysdba 和sysoper系统权限、dba角色的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />? ????????? 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權限的用戶,如:
USERNAME SYSDBA SYSOPER
SYS TRUE TRUE ????????? Sysdba和sysoper兩個系統權限區別
normal 是普通用戶
另外兩個,你考察他們所具有的權限就知道了
sysdba擁有最高的系統權限,登陸后是 sys
sysoper主要用來啟動、關閉數據庫,sysoper 登陸后用戶是 public
? sysdba和sysoper屬于system privilege,也稱為administrative privilege,擁有例如數據庫開啟關閉之類一些系統管理級別的權限sysdba和sysoper具體的權限可以看下表: ?
?
dba、sysdba這兩個系統角色有什么區別呢
在說明這一點之前我需要說一下oracle服務的創建過程
·創建實例→·啟動實例→·創建數據庫(system表空間是必須的)
啟動過程
·實例啟動→·裝載數據庫→·打開數據庫 sysdba,是管理oracle實例的,它的存在不依賴于整個數據庫完全啟動,只要實例啟動了,他就已經存在,以sysdba身份登陸,裝載數據庫、打開數據庫。只有數據庫打開了,或者說整個數據庫完全啟動后,dba角色才有了存在的基礎!
【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角色才有了存在的基礎!
?
?
轉載于:https://blog.51cto.com/46318/114469
總結
以上是生活随笔為你收集整理的Sys和system用户、sysdba 和sysoper系统权限、dba角色的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 你正在用左脑还是右脑思考,请测试下就清楚
- 下一篇: 为了不再颓废,不再堕落......转操作