1. 程式人生 > >【DRP】——oracle資料庫中sys,system,scott,hr使用者的區別

【DRP】——oracle資料庫中sys,system,scott,hr使用者的區別

  背景:

  每一個不曾出現錯誤的一天,都是對學習機會的浪費。so今天是又遇見問題的節奏哦。Oracle雖然有安裝教程,但是擋不住我電腦想犯錯的心。錯誤天天有,今天特別多。但今天的錯誤,確是小編自己,被自己的給蠢哭了。安裝教程沒看清楚,直接解鎖了HR,而不是scott。為了以後學習不出錯,先百度一下HR和scott有什麼區別吧。

    正文:

  1、Oracle中sys,system,scott,hr使用者他們到底有什麼區別呢?

  scott是演示使用者,是讓我們學習Oracle的

  hr使用者是個示例使用者,是在建立資料庫時選中“示例資料庫”後產生的,實際上就是模擬一個人力資源部的資料庫。

  sysdba 不是使用者,可以認為是個許可權,超級許可權。預設中sys就擁有這種超級許可權,是許可權最高的使用者。

  2、sys和system的區別?

  1)儲存的資料的重要性不同。所有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具體的許可權可以看下錶:
  系統許可權
  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/

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

相關推薦

DRP——oracle資料庫syssystemscotthr使用者的區別

  背景:   每一個不曾出現錯誤的一天,都是對學習機會的浪費。so今天是又遇見問題的節奏哦。Oracle雖然有安裝教程,但是擋不住我電腦想犯錯的心。錯誤天天有,今天特別多。但今天的錯誤,確是小編自己

轉載Oracle sqlplus最簡單的一些命令設置顯示的格式

rac mysql gpo acl 命令格式 lines 屬性 log sql 登錄數據庫:方式(1)當我們剛安裝Oracle數據庫時,登錄賬戶時可以使用win+r 輸入sqlplus,進入sqlplus命令窗口,然後輸入用戶名和密碼,這裏輸入密碼時不會有回顯 方式(2)

Oracle資料庫SYSSYSTEM、DBSNMP、SYSMAN四使用者的區別

SYS、SYSTEM、DBSNMP、 Oracle 資料庫中 SYS、SYSTEM、DBSNMP、SYSMAN 四使用者的區別 使用者:  SYS 使用者: SYS,預設密碼為 CHANGE_ON_INSTALL,當建立一個數據庫時,SYS 使用者將被預設 建立並授予 DBA 角色,所有資料庫資料字典中的基

Oracle資料庫SYSSYSTEM、DBSNMP、SYSMAN四類許可權的區別

Oracle 資料庫中 SYS、SYSTEM、DBSNMP、SYSMAN 四類使用者的區別  使用者: SYS 使用者: SYS,預設密碼為 CHANGE_ON_INSTALL,當建立一個數據庫時,S

mybatis欄位儲存多個值用“”隔開如何查詢

目錄 做專案遇到這種情況,欄位中儲存多個值用“,”隔開。這種應該如何查詢呢。 做個簡單的例子: 表: 判斷一個值是否存在其中(FIND_IN_SET) SELECT *

OracleFAQOracle SQL Developer 編輯區不能刪除後退空格複製貼上等功能都失效的解決辦法

解決辦法:開啟選單並選擇Tools-prefrence-Accelerators-Load Preset-Default(工具-首選項-加速器-載入預設-Default)即可! 載入預設在右下方, 另外注意,如果已經設定為Default的話,你可以設定成其他的,然後點選確定

oracle 資料庫某個欄位逗號分隔得到對應列的個數(列轉行)實現方法

由於各種原因,資料的原則問題,導致某個欄位上出現多個數據(依據分隔符隔開),比如 name 欄位為 張三;李四;王五等等 需求:求一張表中name欄位中出現的個數; 想要得到的結果為: 對

關於OraclesyssystemScott用戶下的數據庫連接問題

連接 con str sta sys oracle cot conn nag system默認:manager sys默認:change_on_install 使用SQL Plus登錄數據庫時,system使用密碼manager可直接登錄。 由於為自己的密碼時更改過

程式碼全使用SpringAOP編寫日誌記錄(插入oracle資料庫

程式碼較多,請耐心除錯 首先oracle資料庫表建立語句: drop table cmu_system_log;CREATE TABLE CMU_SYSTEM_LOG ( log_id INTEGER primary key , user_id INTEGER , username

基礎ORACLEsubstr的用法

itl .cn 字符串 ref art from 基礎 htm bst ORACLE中substr函數的簡單用法 substr(字符串,截取開始位置,截取長度) //返回截取的字 substr(‘Hello World‘,0,1) //返回結果為 ‘H‘ *從字符串第一

ORACLE時間類型date和timestamp的相互轉化

數據類型 span 時間類型 mes 常用 tro 1.5 cnblogs 的區別 來源:http://www.cnblogs.com/java-class/p/4742740.html date和timestamp 的區別 date類型是Oracle常用的日

MySQL、SQL server 、Oracle資料庫查詢所有的資料庫查詢指定資料庫所有表名查詢所有的欄位的名字

MySQL中查詢所有資料庫名和表名 1.查詢所有資料庫 show databases; 2.查詢指定資料庫中所有表名 select table_name from information_schema.tables where table_schema='database_name' a

oracle 流程控制oracle資料庫流程控制語句控制PL/SQL語句

1、條件語句 if else判斷 #宣告變數 declare employee_sa number; begin select count(*) into employee_sa from employees where salary>6000; if employee_sa

sql語句一個表含有id和父親id統計父親有多少個孩子

將表和他自己連線~ select * from tb_comment a left join tb_comment b on b.c_fatherid=a.cid 得到右側有空的結果,空的地方count(*)會被統計,用count(column)不會被統計~ 1)count(*

mysql在mysql更新欄位的部分值更新某個字串欄位的部分內容

在mysql中更新欄位的部分值,更新某個字串欄位的部分內容   sql語句如下: update goods set img = REPLACE(img,'http://ozwm3lwui.bkt.clouddn.com','http://imgs.lqjava.com') where

隨堂筆記unity開發Socket的用法(一實現伺服器與客戶端簡單的連結)

實現了簡單的連結,也增加了客戶端沒有連結到伺服器的自動重連 伺服器程式碼 using System; using System.Net; using System.Net.Sockets; namespace SeverSocket { class Program

maven排除mavenjar包依賴的解決過程 例子:spring cloud啟動zipkin報錯maven依賴jar包衝突 Class path contains multiple SLF4J bindings.

一直對於maven中解決jar包依賴問題的解決方法糾結不清: 下面這個例子可以說明一個很簡單的解決方法:     專案啟動報錯: Connected to the target VM, address: '127.0.0.1:59412', transport: 'sock

轉載oracledecode函式用法

1、DECODE的語法:DECODE(value,if1,then1,if2,then2,if3,then3,...,else)。表示假設value 等於if1時,DECODE函式的結果返回then1,...,假設不等於不論什麼一個if值。則返回else 2、該函式的含義例如以下:  IF 條件=值1 TH

linux系統如何進入退出vim編輯器方法及區別

在linux家族中,vim編輯器是系統自帶的文字編輯器,其功能強大自不必說了。        偶有小白,剛接觸linux,要修改某個文字檔案,不可能像WINDOWS那樣操作,更有甚者,進入VI編輯器後,無法退出以致強抽關機,確是不得以呀。 &nb

資料庫關係型資料庫實體間的關係

【資料庫】關係型資料庫中的關係 關係分類 實際應用 關係分類 在關係型資料庫中,按照x對x的分類,可以分為三種,分別為一對一、一對多、多對多。 實際應用 我使用的是MySQL的視覺化工具Workbench,在建立新的Model EER