Oracle sys和system使用者、sysdba 和sysoper系統許可權、sysdba和dba角色的區別)

來源:互聯網
上載者:User
Oracle sys和system使用者、sysdba 和sysoper系統許可權、sysdba和dba角色的區別(轉+改)

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                       SYSDB SYSOP
------------------------------ ----- -----
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角色才有了存在的基礎!

 

as SYSDBA or SYSOPER串連方式和不帶as的區別
When you connect with SYSDBA or SYSOPER privileges, you connect with a default schema, not with the schema that is generally associated with your username.

For SYSDBA this schema is SYS; for SYSOPER the schema is PUBLIC.

看下面的測試,你就明白了以as sysdba串連和不以as sysdba串連的區別了。
SQL> conn zhhstream/zhhstream
Connected.
SQL> show user
USER is "ZHHSTREAM"
SQL> create table test
  2  (id number(4),
  3  name varchar2(10)
  4  )
  5  ;

Table created.

SQL> desc test
 Name                                                  Null?    Type
 ----------------------------------------------------- -------- ------------------------------------
 ID                                                             NUMBER(4)
 NAME                                                           VARCHAR2(10)

SQL> conn zhhstream/zhhstream as sysdba
Connected.
SQL> show user
USER is "SYS"
SQL> desc test
ERROR:
ORA-04043: object test does not exist
SQL> conn zhhstream/zhhstream as sysoper
Connected.
SQL> show user
USER is "PUBLIC"

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.