Sys和system用戶、sysdba 和sysoper系統(tǒng)權(quán)限、dba角色
?
sys和system用戶區(qū)別
?
1 )?? 最重要的區(qū)別,存儲(chǔ)的數(shù)據(jù)的重要性不同
【sys】? 所有oracle的數(shù)據(jù)字典的基表和視圖都存放在sys用戶中,這些基表和視圖對(duì)于oracle的運(yùn)行是至關(guān)重要的,由數(shù)據(jù)庫(kù)自己維護(hù),任何用戶都不能手動(dòng)更改。
sys用戶擁有dba,sysdba,sysoper等角色或權(quán)限,是oracle權(quán)限最高的用戶。
?
【system】? 用戶用于存放次一級(jí)的內(nèi)部數(shù)據(jù),如oracle的一些特性或工具的管理信息。system用戶擁有普通dba角色權(quán)限。
?
2)?? 其次的區(qū)別,權(quán)限的不同。
【system】用戶只能用normal身份登陸em,除非你對(duì)它授予了sysdba的系統(tǒng)權(quán)限或者syspoer系統(tǒng)權(quán)限。
【sys】用戶具有“SYSDBA”或者“SYSOPER”系統(tǒng)權(quán)限,登陸em也只能用這兩個(gè)身份,不能用normal。
以sys用戶登陸Oracle,執(zhí)行select * from V_$PWFILE_USERS;可查詢到具有sysdba權(quán)限的用戶,如:
SQL> select * from V_$PWFILE_USERS;
USERNAME SYSDBA SYSOPER
SYS TRUE TRUE
? Sysdba和sysoper兩個(gè)系統(tǒng)權(quán)限區(qū)別
?
normal 、sysdba、 sysoper有什么區(qū)別
normal 是普通用戶
另外兩個(gè),你考察他們所具有的權(quán)限就知道了
sysdba擁有最高的系統(tǒng)權(quán)限,登陸后是 sys
sysoper主要用來(lái)啟動(dòng)、關(guān)閉數(shù)據(jù)庫(kù),sysoper 登陸后用戶是 public
?
sysdba和sysoper屬于system privilege,也稱為administrative privilege,擁有例如數(shù)據(jù)庫(kù)開(kāi)啟關(guān)閉之類一些系統(tǒng)管理級(jí)別的權(quán)限sysdba和sysoper具體的權(quán)限可以看下表:
?
系統(tǒng)權(quán)限??????? sysdba??????????????????????????????? sysoper
區(qū)別????????? Startup(啟動(dòng)數(shù)據(jù)庫(kù))????????????????????????????? startup
Shutdown(關(guān)閉數(shù)據(jù)庫(kù))?????????????????????????????????????????? shutdown
alter database open/mount/backup????????????????????? alter database open/mount/backup
改變字符集????????????????????????????????????????????????????? none
create database(創(chuàng)建數(shù)據(jù)庫(kù))??????????????????????????????? None不能創(chuàng)建數(shù)據(jù)庫(kù)
drop database(刪除數(shù)據(jù)庫(kù))?????????????????????????????????????? none
create spfile??????????????????????????????????????????????? create spfile
alter database archivelog(歸檔日志)??????????????????????? alter database archivelog
alter database recover(恢復(fù)數(shù)據(jù)庫(kù))????????????????????? 只能完全恢復(fù),不能執(zhí)行不完全恢復(fù)
擁有restricted session(會(huì)話限制)權(quán)限?????????????????????? 擁有restricted session權(quán)限
可以讓用戶作為sys用戶連接可以進(jìn)行一些基本的操作,但不能查看用戶數(shù)據(jù)
登錄之后用戶是sys???????????????????????????????????????????? 登錄之后用戶是public
?
system如果正常登錄,它其實(shí)就是一個(gè)普通的dba用戶,但是如果以as sysdba登錄,其結(jié)果實(shí)際上它是作為sys用戶登錄的,這一點(diǎn)類似Linux里面的sudo的感覺(jué),從登錄信息里面我們可以看出來(lái)。因此在as sysdba連接數(shù)據(jù)庫(kù)后,創(chuàng)建的對(duì)象實(shí)際上都是生成在sys中的。其他用戶也是一樣,如果 as sysdba登錄,也是作為sys用戶登錄的,看以下實(shí)驗(yàn):?
SQL> create user strong identified by strong;
用戶已創(chuàng)建。
SQL> conn strong/strong@magick as sysdba;
已連接。
SQL> show user;
USER 為 "SYS"
SQL> create table test(a int);
表已創(chuàng)建。
SQL> select owner from dba_tables where table_name='test';
未選定行 //因?yàn)閯?chuàng)建表時(shí)oracle自動(dòng)轉(zhuǎn)為大寫(xiě),所以用小寫(xiě)查的時(shí)候是不存在的;
SQL> select owner from dba_tables where table_name='TEST';
OWNER
------------------------------
SYS
? dba和sysdba的區(qū)別
dba、sysdba這兩個(gè)系統(tǒng)角色有什么區(qū)別呢
在說(shuō)明這一點(diǎn)之前我需要說(shuō)一下oracle服務(wù)的創(chuàng)建過(guò)程
·創(chuàng)建實(shí)例→·啟動(dòng)實(shí)例→·創(chuàng)建數(shù)據(jù)庫(kù)(system表空間是必須的)
啟動(dòng)過(guò)程
·實(shí)例啟動(dòng)→·裝載數(shù)據(jù)庫(kù)→·打開(kāi)數(shù)據(jù)庫(kù)
sysdba,是管理oracle實(shí)例的,它的存在不依賴于整個(gè)數(shù)據(jù)庫(kù)完全啟動(dòng),只要實(shí)例啟動(dòng)了,他就已經(jīng)存在,以sysdba身份登陸,裝載數(shù)據(jù)庫(kù)、打開(kāi)數(shù)據(jù)庫(kù)。只有數(shù)據(jù)庫(kù)打開(kāi)了,或者說(shuō)整個(gè)數(shù)據(jù)庫(kù)完全啟動(dòng)后,dba角色才有了存在的基礎(chǔ)!
?
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
