1. 程式人生 > >Oracle中sys和system使用者的區別

Oracle中sys和system使用者的區別

 

Oracle中sys和system使用者的區別

1.資料庫的啟動需要以SYSDBA/SYSOPER身份登入。

2.如果在同一主機上使用IPC連線到資料庫使用作業系統授權,登入任何一個使用者都可以擁有as sysdba和as sysoper。

3.sys和system使用者的區別

    SYS使用者具有DBA許可權,並具有SYS模式。只能通過SYSDBA登入資料庫,是Oracle資料庫中許可權最高的帳號。sys使用者具有“SYSDBA”和“SYSOPER”許可權,登陸em時也只能用這兩個身份,不能用normal。而system登入em時只能用normal模式登入。sys擁有資料字典(dictionary),或者說dictionary屬於sys schema。

    system使用者具有DBA許可權,但是沒有SYSDBA許可權。平常一般用該帳號管理資料庫。登入em時只能使用normal登入。 

4.SYSDBA許可權和SYSOPER許可權區別

    “SYSOPER”許可權,即資料庫操作員許可權,sysoper主要用來啟動、關閉資料庫,sysoper 登陸後用戶是 public。許可權包括:開啟資料庫(STARTUP, ALTER DATABASE OPEN/MOUNT/OPEN),伺服器(CREATE SPFILE,etc)

  關閉資料庫伺服器 
  備份資料庫 
  恢復資料庫RECOVERY 
  日誌歸檔ARCHIVELOG 
  會話限制RESTRICTED SESSION

    “SYSDBA”許可權,即資料庫管理員許可權,最高的系統許可權。任何具有sysdba登入後用戶是“SYS”。許可權包括:管理功能, 建立資料庫(CREATE DATABASE)以及 “SYSOPER”的所有許可權

      其他使用者需要手動grant許可權,show user為該使用者的名稱。

SQL>conn / as sysdba 
已連線。 
SQL>grant sysoper to test; 
授權成功。 
SQL>grant sysdba to test; 
授權成功。 
SQL>conn test/test as sysoper; 
已連線。 
SQL>show user 
USER 為"PUBLIC" 
SQL>conn test/test as sysdba; 
已連線。 
SQL>show user; 
USER 為"SYS" 
SQL>conn test/test; 
已連線。 
SQL>show user 
USER 為"test"

5.dba和sysdba的區別:

    sysdba,是管理oracle例項的,它的存在不依賴於整個資料庫完全啟動,只要例項啟動了,他就已經存在,以sysdba身份登陸,裝載資料庫、開啟資料庫。

    只有在資料庫完全啟動後,dba角色才有了存在的基礎.

分類: Oracle

 

https://www.cnblogs.com/fkeyta/p/5598659.html

 

 

 

Oracle中sys和system使用者、系統許可權和角色的區別

 更新時間:2016年05月25日 11:51:11   作者:秦風   我要評論

 

 

本文從使用者、系統許可權和角色三個維度分別介紹了Oracle中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 SYSDBA SYSOPER
  SYS TRUE TRUE

 

Sysdba和sysoper兩個系統許可權區別

normal 、sysdba、 sysoper有什麼區別

normal 是普通使用者

另外兩個,你考察他們所具有的許可權就知道了

sysdba擁有最高的系統許可權,登陸後是 sys

sysoper主要用來啟動、關閉資料庫,sysoper 登陸後用戶是 public

sysdba和sysoper屬於system privilege,也稱為administrative privilege,擁有例如資料庫開啟關閉之類一些系統管理級別的許可權sysdba和sysoper具體的許可權可以看下錶:

//files.jb51.net/file_images/article/201605/2016525115143054.png

oracle <wbr>sys和system使用者區別

system如果正常登入,它其實就是一個普通的dba使用者,但是如果以as sysdba登入,其結果實際上它是作為sys使用者登入的,這一點類似Linux裡面的sudo的感覺,從登入資訊裡面我們可以看出來。因此在as sysdba連線資料庫後,建立的物件實際上都是生成在sys中的。其他使用者也是一樣,如果 as sysdba登入,也是作為sys使用者登入的,看以下實驗: 

SQL> create user strong identified by strong;

使用者已建立。

SQL> conn strong/[email protected] 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角色才有了存在的基礎!

1.DBA許可權主要包含的是資料庫管理相關的許可權

2.需要給你的使用者admin賦予建表等相關許可權,比如
grant create table to admin; --建立表 grant create view to admin; -- 建立檢視

3.也可以直接給connect和resource角色,其包括大部分需要的 grant connect,resource to admin; 
這兩個角色包括的許可權(以oracle 10g為例)有: 

CONNECT角色:    --是授予終端使用者的典型權利,最基本的
CREATE    SESSION    --建立會話
RESOURCE角色:    --是授予開發人員的
CREATE    CLUSTER         --建立聚簇
CREATE    PROCEDURE    --建立過程
CREATE    SEQUENCE      --建立序列
CREATE    TABLE              --建表
CREATE    TRIGGER          --建立觸發器
CREATE    TYPE                --建立型別
CREATE    OPERATOR       --建立操作者
CREATE    INDEXTYPE      --建立索引型別
CREATE    TABLE              --建立表

您可能感興趣的文章:

https://www.jb51.net/article/85051.htm

 

 

oracle中sys使用者和system使用者的區別

一、最重要的區別:儲存資料的重要性不同

【sys】所有 oracle 的資料字典的基表和檢視都存放在 sys 使用者中,這些基表和檢視對於 oracle 的執行是至關重要的,由資料庫自己維護,任何使用者都不能手動更改。 sys 使用者擁有 dba , sysdba , sysoper 等角色或許可權,是 oracle 許可權最高的使用者。

【 system 】 使用者用於存放次一級的內部資料,如 oracle 的一些特性或工具的管理資訊。 system 使用者擁有普通 dba 角色許可權。

二、其次的區別:許可權的不同

【 system 】使用者只能用 normal 身份登陸 em ,除非你對它授予了 sysdba 的系統許可權(grant sysdba to system)或者 sysoper 系統許可權。
【 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;

 

https://www.cnblogs.com/bowenbk/p/6371368.html