Oracle實例、用戶、權限和角色

  一、數據庫的實例:數據庫建立後會有一系列爲該數據庫提供服務的內存空間和後天進程,稱爲該數據庫的實例。每個數據庫至少會有一個實例爲其服務。實例中的內存結構稱爲系統全局區(SGA),系統會根據當前計算機系統的性能給SGA分配很是可觀的內存空間。數據庫

  二、雖然一個Oracle數據庫服務器中能夠安裝多個數據庫,可是一個數據庫須要佔用很是大的內存空間,所以通常一個服務器只安裝一個數據庫。每個數據庫能夠有不少用戶,不一樣的用戶擁有本身的數據庫對象(好比:數據庫表),一個用戶若是訪問其餘用戶的數據庫對象,必須由對方用戶授予必定的權限。不一樣的用戶建立的表,只能被當前用戶訪問。所以在Oracle開發中,不一樣的應用程序只需使用不一樣的用戶訪問便可。服務器

  三、Oracle 用戶和權限session

  Oracle中,通常不會輕易在一個服務器上建立多個數據庫,在一個數據庫中,不一樣的項目由不一樣的用戶訪問,每個用戶擁有自身建立的數據庫對象,所以用戶的概念在Oracle中很是重要。Oracle的用戶能夠用CREATE USER命令來建立。其語法是:性能

  CREATE USER 用戶名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]spa

  LOCK|UNLOCK建立用戶時是否鎖定,默認爲鎖定狀態。鎖定的用戶沒法正常的登陸進行數據庫操做。對象

  儘管用戶成功建立,可是還不能正常的登陸Oracle數據庫系統,由於該用戶尚未任何權限。若是用戶可以正常登陸,至少須要CREATE SESSION系統權限。索引

  Oracle用戶對數據庫管理或對象操做的權利,分爲系統權限和數據庫對象權限。系統權限好比:CREATE SESSION,CREATE TABLE等,擁有系統權限的用戶,容許擁有相應的系統操做。數據庫對象權限,好比對錶中的數據進行增刪改操做等,擁有數據庫對象權限的用戶能夠對所擁有的對象進行對應的操做。進程

  還有一個概念就是數據庫角色(role),數據庫角色就是若干個系統權限的集合。下面介紹幾個經常使用角色:內存

  ①CONNECT角色,主要應用在臨時用戶,特別是那些不須要建表的用戶,一般只賦予他們CONNECT role。CONNECT是使用Oracle的簡單權限,擁有CONNECT角色的用戶,能夠與服務器創建鏈接會話(session,客戶端對服務器鏈接,稱爲會話)。開發

  ② RESOURCE角色,更可靠和正式的數據庫用戶能夠授予RESOURCE role。RESOURCE提供給用戶另外的權限以建立他們本身的表、序列、過程(procedure)、觸發器(trigger)、索引(index)等。

  ③ DBA角色,DBA role擁有全部的系統權限----包括無限制的空間限額和給其餘用戶授予各類權限的能力。用戶SYSTEM擁有DBA角色。

  通常狀況下,一個普通的用戶(如SCOTT),擁有CONNECT和RESOURCE兩個角色便可進行常規的數據庫開發工做。

  能夠把某個權限授予某個角色,能夠把權限、角色授予某個用戶。系統權限只能由DBA用戶受權,對象權限由擁有該對象的用戶受權,受權語法是:GRANT角色|權限 TO 用戶(角色)

  //回收權限

  REVOKE 角色|權限 FROM 用戶(角色)

  //修改用戶的密碼

  ALTER USER 用戶名 IDENTIFIED BY 新密碼

  //修改用戶處於鎖定(非鎖定)狀態

  ALTER USER 用戶名 ACCOUNT LOCK|UNLOCK

相關文章
相關標籤/搜索