程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> Oracle中sys和system用戶、系統權限和角色的區別,oraclesys

Oracle中sys和system用戶、系統權限和角色的區別,oraclesys

編輯:Oracle教程

Oracle中sys和system用戶、系統權限和角色的區別,oraclesys


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具體的權限可以看下表:

https://www.aspphp.online/shujuku/UploadFiles_3118/201701/2017012311211123.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/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角色才有了存在的基礎!

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              --創建表

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved