DBA,SYSDBA,SYSOPER三者的區別
什麼是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不允許的,其實你也不可以成功執行這樣的包含迴路角色的授權的!
SYSDBA:說白了就是一種系統許可權而已,沒有什麼神秘的。當我們在SQL*PLUS命令列上執行了類似如下的操作:
SQL>conn / as sysdba;這時候,其實我們是以SYSDBA這個身份去登陸資料庫的,我們當前的default schema是SYS。那麼SYSDBA這個系統許可權究竟允許執行哪些操作呢?
■ Perform STARTUP and SHUTDOWN operations
■ ALTER DATABASE: open, mount, back up, or change character set
■ CREATE DATABASE
■ DROP DATABASE
■ CREATE SPFILE
■ ALTER DATABASE ARCHIVELOG
■ ALTER DATABASE RECOVER
■ Includes the RESTRICTED SESSION privilege
以SYSDBA登陸Oracle資料庫時,上述幾種操作是允許執行的。
SYSOPER:也是一種系統許可權,只不過跟SYSOPER略有區別而已。SQL>conn /as sysoper 這種連線下,我們的default schema是PUBLIC.允許執行的操作如下:
■ Perform STARTUP and SHUTDOWN operations
■ CREATE SPFILE
■ ALTER DATABASE OPEN/MOUNT/BACKUP
■ ALTER DATABASE ARCHIVELOG
■ ALTER DATABASE RECOVER (Complete recovery only. Any form of incomplete recovery, such as UNTIL
TIME|CHANGE|CANCEL|CONTROLFILE requires connecting as SYSDBA.)
■ Includes the RESTRICTED SESSION privilege
簡單區別如下:
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”
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.
SYSDBA和SYSOPER系統許可權允許我們在資料庫開啟之前以這兩種身份去訪問例項。
當然,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登入。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/223653/viewspace-1273233/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- sysdba,dba,sysoper的區別
- 關於sysdba,sysoper,dba的區別
- SYS,SYSTEM,DBA,SYSDBA,SYSOPER的區別與聯絡
- sysdba,sysoper,normal的區別ORM
- normal 、sysdba、 sysoper的區別ORM
- system sys,sysoper sysdba 的區別
- normal、sysdba、sysoper登陸oracle的區別理解ORMOracle
- dba和sysdba的區別
- sysdba和dba的區別
- 【Privilege】SYSOPER和SYSDBA特權的區別與聯絡
- Oracle dba角色和sysdba的區別Oracle
- SYSDBA and SYSOPER Privileges in Oracle [ID 50507.1]Oracle
- 31、ASM的使用者SYSDBA和SYSOPERASM
- 總結sysdba和sysoper許可權
- dba和sysdba的區別(轉自“三十而立專欄”部落格)
- sysdba與sysoper系統特權介紹
- 11g文件學習----sysdba sysoper OSDBA OSOPER
- Git、Repo、Gerrit三者的區別Git
- HA DG RAC 三者的區別
- Oracle - ORA-28009: connection as SYS should be as SYSDBA OR SYSOPEROracle
- Token ,Cookie、Session 三者區別CookieSession
- @ApiParam @PathVariable @RequestParam三者區別API
- Oracle DBA 和Oracle EBS DBA 的最大區別Oracle
- preventDefault,stopPropagation,return false三者的區別False
- return、break、continue三者區別
- 2 Day DBA-管理Oracle例項-關於管理帳戶和許可權-SYSDBA和SYSOPER系統許可權Oracle
- js框架---angular、vue、react的三者的區別?JS框架AngularVueReact
- dba_segments/dba_extents/dba_tables區別
- tailf、tail -f、tail -F三者區別AI
- View—requestLayout、invalidate 和 postInvalidate 三者的區別View
- final、finally與finalize三者的區別
- 【ES6】var、let、const三者的區別
- dba_tables 和 dba_segments 表中 blocks 的區別BloC
- jQuery與JavaScript與ajax三者的區別與聯絡jQueryJavaScript
- String StringBuffer StringBuilder 三者的區別UI
- var、let和const三者有哪些區別?
- dba_data_files和v$datafile的區別
- HTTPS、SSL、TLS三者之間的聯絡和區別HTTPTLS