DBA,SYSDBA,SYSOPER三者的區別

liuhaimiao發表於2014-09-18

DBA,SYSDBA,SYSOPER三者的區別





真題1、下面哪個選項不是Oracle的使用者()

A、SYSDBA   B、SYSTEM   C、SCOTT   D、SYS

答案:A

SYSDBA和SYSOPER屬於特殊系統許可權(system privilege,也稱為管理許可權(administrative privilege,擁有例如資料庫開啟、關閉等一些系統管理級別的許可權。SYSDBA擁有最高的系統許可權,SYS使用者必須以SYSDBASYSOPER的許可權來登入,而任何使用者以SYSOPER身份登陸後使用者是PUBLIC。

[oracle@edsir4p1-PROD1 ~]$ sqlplus sys/oracle

 

SQL*Plus: Release 11.2.0.1.0 Production on Wed Nov 29 02:40:40 2017

 

Copyright (c) 1982, 2009, Oracle.  All rights reserved.

 

ERROR:

ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

[oracle@orcltest ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Tue Dec 6 14:39:19 2016

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

With the Partitioning, Automatic Storage Management, OLAP, Data Mining

and Real Application Testing options

SYS@lhrdb> show user

USER is "SYS"

SYS@lhrdb> grant sysoper to lhr;

Grant succeeded.

SYS@lhrdb> conn lhr/lhr as sysoper

Connected.

PUBLIC@lhrdb> show user

USER is "PUBLIC"

PUBLIC@lhrdb> conn lhr/lhr

Connected.

LHR@lhrdb> show user

USER is "LHR"


如何查詢擁有SYSDBA或是SYSOPER許可權的使用者呢?可以使用檢視V$PWFILE_USERS,結果集中的SYSDBA和SYSOPER分別代表是否含有SYSDBA和SYSOPER許可權,如下所示:
SYS@PROD1> DESC V$PWFILE_USERS
 Name                                      Null?    Type
 ----------------------------------------- -------- ----------------------------
 USERNAME                                           VARCHAR2(30)
 SYSDBA                                             VARCHAR2(5)
 SYSOPER                                            VARCHAR2(5)
 SYSASM                                             VARCHAR2(5)


SYS@PROD1> SELECT * FROM V$PWFILE_USERS ;


USERNAME                       SYSDB SYSOP SYSAS
------------------------------ ----- ----- -----
SYS                            TRUE  TRUE  FALSE


SYS@PROD1> SELECT * FROM SYSTEM_PRIVILEGE_MAP WHERE NAME LIKE '%SYS%';


 PRIVILEGE NAME                                       PROPERTY
---------- ---------------------------------------- ----------
        -3 ALTER SYSTEM                                      0
        -4 AUDIT SYSTEM                                      0
       -83 SYSDBA                                            0
       -84 SYSOPER                                           0

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

本題中,對於選項ASYSDBA屬於系統特殊許可權,不屬於使用者選項A的描述錯誤。所以,選項A正確。

對於選項BSYSTEM是系統預設使用者,擁有DBA角色。所以,選項B錯誤。

對於選項CSCOTT使用者屬於測試使用者。所以,選項C錯誤。

對於選項DSYS使用者具有管理系統的最高許可權,必須以SYSDBASYSOPER來登入。所以,選項D錯誤。

所以,本題的答案為A






什麼是DBA?什麼是SYSDBA,什麼又是SYSOPER?三者究竟有何聯絡呢?

在Oracle資料庫領域裡,很多Oracle初學者(Me 2)很容易被這三個術語迷惑,就其原因還是基礎概念沒有弄清楚。記得自己剛開始接觸Oracle的時候,也是雲裡霧裡,現在基本弄明白,故寫出來和大家分享:

DBA:在Oracle資料庫裡面其實只是一個角色(role)。那麼什麼是角色呢?可以簡單的認為一個角色就是某些個許可權的集合體,也就是說把多個系統許可權(system privilege),物件許可權(object privilege)以及角色(role)揉和在一起,然後賦給一個角色。說白了,Oracle引入角色的概念,其實是為了避免相關的系統許可權和物件許可權的賦予和回收的複雜性。把一堆系統許可權和物件許可權以及角色打包之後賦給某個新角色,然後再對這個新角色進行必要的操作就顯得相當便捷和方便了。當然,在Oracle裡面一個角色是可以賦給另外一個角色的,但是角色的賦給是不能夠構成迴圈迴路的。eg:先把role1給role2,然後把role2給role3,那麼你就不可以再把role3給role1了。這是Oracle不允許的,其實你也不可以成功執行這樣的包含迴路角色的授權的!

只有資料庫開啟了,或者說整個資料庫完全啟動後,dba角色才有了存在的基礎


SYSDBA:擁有最高的系統許可權,sysdba,是管理oracle例項的,它的存在不依賴於整個資料庫完全啟動,只要例項啟動了,他就已經存在,以sysdba身份登陸,裝載資料庫、開啟資料庫

SQL>conn / as sysdba;這時候,其實我們是以SYSDBA這個身份去登陸資料庫的,我們當前的default schema是SYS

以SYSDBA登陸Oracle資料庫時,上述幾種操作是允許執行的。SYSDBA可以訪問V$物件檢視

SYSOPER:也是一種系統許可權,只不過跟SYSOPER略有區別而已。SQL>conn /as sysoper 這種連線下,我們的default schema是PUBLIC.


簡單區別如下:

SQL> conn sys/oracle as sysdba;

Connected to an idle instance.

SQL> show user;

USER is “SYS”

SQL> conn sys/oracle as sysoper;

Connected to an idle instance.

SQL> show user;

USER is “PUBLIC”

sys

SQL>

Note:The SYSDBA and SYSOPER system privileges allow access to a database instance even when the database is not open. Control of these privileges is totally outside of the database itself.

SYSOPER不能訪問V$物件檢視


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

 


SYSDBA和SYSOPER系統許可權允許我們在資料庫開啟之前以這兩種身份去訪問例項。SYSOPER沒有許可權訪問V$物件檢視

 

當然,DBA還可以理解成另外兩個術語的簡寫;Database Administrator,Data Block Address。

一句話總結三者之間的關係:

Note: The DBA role does not include the SYSDBA or SYSOPER system privileges. These are special administrative privileges that allow an administrator to perform basic database administration tasks, such as creating the database and instance startup and shutdown.

DBA 角色並未包含SYSDBA,SYSOPER這兩個系統許可權。他們是一類特殊的系統管理許可權,允許管理員以這兩種身份對資料庫進行特殊的管理工作。

還有就是,不要輕易將SYSDBA,SYSOPER這兩種系統許可權授權給資料庫的普通使用者。也不要輕易將DBA角色賦給普通使用者。在對資料庫進行普通操作的時候,也不要以SYSDBA,SYSOPER登入





About Me

.............................................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在itpub(http://blog.itpub.net/26736162/abstract/1/)、部落格園(http://www.cnblogs.com/lhrbest)和個人微信公眾號(xiaomaimiaolhr)上有同步更新

● 本文itpub地址:http://blog.itpub.net/26736162/abstract/1/

● 本文部落格園地址:http://www.cnblogs.com/lhrbest

● 本文pdf版、個人簡介及小麥苗雲盤地址:http://blog.itpub.net/26736162/viewspace-1624453/

● 資料庫筆試面試題庫及解答:http://blog.itpub.net/26736162/viewspace-2134706/

● DBA寶典今日頭條號地址:http://www.toutiao.com/c/user/6401772890/#mid=1564638659405826

.............................................................................................................................................

● QQ群號:230161599(滿)、618766405

● 微信群:可加我微信,我拉大家進群,非誠勿擾

● 聯絡我請加QQ好友646634621,註明新增緣由

● 於 2017-11-01 09:00 ~ 2017-11-30 22:00 在魔都完成

● 文章內容來源於小麥苗的學習筆記,部分整理自網路,若有侵權或不當之處還請諒解

● 版權所有,歡迎分享本文,轉載請保留出處

.............................................................................................................................................

小麥苗的微店https://weidian.com/s/793741433?wfr=c&ifr=shopdetail

小麥苗出版的資料庫類叢書http://blog.itpub.net/26736162/viewspace-2142121/

.............................................................................................................................................

使用微信客戶端掃描下面的二維碼來關注小麥苗的微信公眾號(xiaomaimiaolhr)及QQ群(DBA寶典),學習最實用的資料庫技術。

   小麥苗的微信公眾號      小麥苗的DBA寶典QQ群2     《DBA筆試面寶典》讀者群       小麥苗的微店

.............................................................................................................................................

DBA,SYSDBA,SYSOPER三者的區別
DBA筆試面試講解群
《DBA寶典》讀者群 歡迎與我聯絡



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2147919/,如需轉載,請註明出處,否則將追究法律責任。

相關文章