1、數據庫的實例:數據庫創建后會有一系列為該數據庫提供服務的內存空間和后天進程,稱為該數據庫的實例。每一個數據庫至少會有一個實例為其服務。實例中的內存結構稱為系統全局區(SGA),系統會根據當前計算機系統的性能給SGA分配非常可觀的內存空間。
2、雖然一個Oracle數據庫服務器中可以安裝多個數據庫,但是一個數據庫需要占用非常大的內存空間,因此一般一個服務器只安裝一個數據庫。每一個數據庫可以有很多用戶,不同的用戶擁有自己的數據庫對象(比如:數據庫表),一個用戶如果訪問其他用戶的數據庫對象,必須由對方用戶授予一定的權限。不同的用戶創建的表,只能被當前用戶訪問。因此在Oracle開發中,不同的應用程序只需使用不同的用戶訪問即可。
3、Oracle 用戶和權限
Oracle中,一般不會輕易在一個服務器上創建多個數據庫,在一個數據庫中,不同的項目由不同的用戶訪問,每一個用戶擁有自身創建的數據庫對象,因此用戶的概念在Oracle中非常重要。Oracle的用戶可以用CREATE USER命令來創建。其語法是:
CREATE USER 用戶名 IDENTIFIED BY 口令 [ACCOUNT LOCK|UNLOCK]
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