Oracle建立使用者詳解
一、使用者的概念
使用者,即user,通俗的講就是訪問Oracle資料庫的“人”。在Oracle中,可以對使用者的各種安全參數進行控制,以維護資料庫的安全性,這些概念包括模式(schema)、許可權、角色、儲存設定、空間限額、存取資源限制、Database Audit等。每個使用者都有一個口令,使用正確的使用者/口令才能登入到資料庫進行資料存取。
在CentOS 6.4下安裝Oracle 11gR2(x64)
Oracle 11gR2 在VMWare虛擬機器中安裝步驟
Debian 下 安裝 Oracle 11g XE R2
二、使用者預設資料表空間
資料表空間是資訊儲存的最大邏輯單位、當使用者串連到資料庫進行資料儲存時,若未指出資料的目標儲存資料表空間時,則資料存放區在使用者的預設資料表空間中。
比如:create table mytable(id varchar2(20),name varchar2(100));這條語句建立了一個表mytable,並將其儲存在目前使用者的預設資料表空間中,
若要指定資料表空間,則:create table mytable(id varchar2(20),name varchar2(100)) tablespace tbs1;。
使用者的預設資料表空間可以在建立使用者時指定,也可以使用aler user命令進行指定,具體文法見後面的介紹。
三、使用者暫存資料表空間
暫存資料表空間主要用於order by語句的排序以及其它一些中間操作。
在oracle9i之前,可以指定使用者使用不同的暫存資料表空間,從9i開始,暫存資料表空間是通用的,所的使用者都使用TEMP作為暫存資料表空間。
四、使用者資源檔
使用者資源檔用來對使用者的資源存取進行限制,包括:cpu使用時間限制、記憶體邏輯讀個數限制、每個使用者同時可以串連的會話資料限制、
一個會話的空間和時間限制、一個會話的期間限制、每次會話的專用SGA空間限制。
五、使用者資料表空間限額
資料表空間儲存限制是使用者在某一個資料表空間中可以使用的儲存空間總數。
在建立或修改使用者時,可以由參數quota指出。若使用者在向資料表空間儲存資料時,超出了此限額,則會產生錯誤。
錯誤資訊如:'ORA-01536:space quota exceeded for tablespace tablespacename..'。可以通過查詢字典dba_ts_quotas查看錶空間限額資訊。
六、建立使用者資源檔
建立使用者資源檔的文法如下:
CREATE PROFILE filename LIMIT
SESSION_PER_USER integer
CPU_PER_SESSION integer
USER_PER_CALL integer
CONNECT_TIME integer
......
基中:
SESSION_PER_USER: 使用者可以同時串連的會話數量限額;
CPU_PER_SESSION:使用者在一次資料庫會期間可佔用的CPU時間總量限額,單位為百分之一秒;
USER_PER_CALL:使用者一次SQL調用可用的CPU時間總量限額,單位為百分之一秒;
LOGICAL_READS_PER_SESSION:在一次資料庫會話期間能夠讀取的資料庫塊的個數限額;
LOGICAL_READS_PER_CALL:一次SQL調用可以讀取的資料庫塊數限額;
IDLE_TIME:使用者串連到資料庫後的可空閑時間限額,單位為分鐘,若空閑時間超過此值,則串連被斷開;
CONNECT_TIME:一次串連的時間總量限額,單位為分鐘,連線時間超過此值時,串連被斷開;
PRIVATE_SGA:使用者麼有的SGA區的大小,單位為資料庫塊,預設值為UNLIMITED;
COMPOSITE_LIMIT:這是一項由上述限制參數構成的組合資源項。
舉例來說,假設資源設定如下:
IDLE_TIME 20
CONNECT_TIME 120
CPU_PER_CALL 750
COMPOSITE_LIMT 800
那麼,當會話空間超過20分鐘,或者連線時間超過120分鐘,又或者執行一個SQL耗費超過7.5秒,再或者這幾個資源限制加起來的總數超過800,
則系統自動終止會話。
FAILED_LOGIN_ATTEMPTS:使用者登入時,允許使用者名稱/密碼校正失敗致使用登入失敗的次數限額,超過該次數,帳戶被鎖定;
PASSWORD_LIFE_TIME:口令有效時間,單位為天數,超過這一時間,拒絕登入,須重新設定口令,預設值為UNLIMITED;
PASSWORD_REUSE_TIME:一個失效口令經過多少天后才可重新利用,預設為UNLIMITED;
PASSWORD_REUSE_MAX:一個口令可重複使用的次數;
PASSWORD_LOCK_TIME:當登入失敗達到FAILED_LOGIN_ATTEMPS時,帳戶被鎖定,該參數用於設定被鎖定的天數;
下面舉例如下:
1)建立一個使用者資源檔
create profile tax_users limit
session_per_user 3
cpu_per_session UNLIMITED
connect_time 30
logical_reads_per_session DEFAULT
logical_reads_per_call 1000
private_sga 15K
composite_limit 500000
password_life_time 90
2)查詢使用者資源檔資訊
sql>select *from dba_profile where profile = 'tax_users'
3)指定使用者資源檔給使用者
sql>alter user us1 profile tax_users
更多詳情見請繼續閱讀下一頁的精彩內容: