教你如何成為Oracle 10g OCP - 第八章 使用者、許可權和角色管理01

tolywang發表於2010-11-18

 

8.1  使用者管理

每個使用者有一系列的屬性,包括以下幾個方面:

A. 唯一的使用者名稱,必須字母開頭,最多30位元組,不能有特殊字元。
B. 認證: 通常使用密碼認證
C. 預設表空間: 使用者建立後,如果在使用者下建立了物件,那麼生成與使用者同名的schema,
即schema與使用者名稱的區別在於是否存在使用者物件。10g之前,如果沒有指定default tbs,
那麼system會被作為預設表空間;10g或之後,在建庫的時候就可以指定一個資料庫級的
預設表空間,這樣定義使用者沒有指定預設表空間的話,預設就使用這個資料庫級的TBS.
可以透過下面的語句查詢:
select * from database_properties ;
或者 select name,value$ from props$ where name like 'DEFAULT%'
D. 預設臨時表空間: Oracle9i之前,如果沒有指定,會使用system作為臨時表空間,9i開始,
可以為資料庫指定預設臨時表空間,定義使用者時沒有指定的話,使用資料庫預設的臨時表空間。
E. profile(配置檔案),用於控制使用者密碼策略以及資源使用。
F. 使用者組
G. 鎖定狀態: 可以將使用者鎖定和解鎖 。

 

資料庫建立後,會預先建立兩個非常重要的使用者:sys及system, sys是超級使用者,許可權太大,
所以登陸的時候需要加入as sysdba 增強安全性,因為以as sysdba登陸後,登陸的時間資訊
會記錄在審計檔案中。system僅僅時候資料庫管理員,沒有sys那麼大許可權。

通常我們不使用sys及system等使用者登入資料庫進行管理,而是建立一個使用者,賦予該使用者DBA
角色許可權,用該使用者來進行日常管理工作。


8.1.1  建立和刪除使用者

CREATE USER sidney
    IDENTIFIED BY out_standing1
    DEFAULT TABLESPACE example
    QUOTA 10M ON example
    TEMPORARY TABLESPACE temp
    QUOTA 5M ON system
    PROFILE app_user
    PASSWORD EXPIRE;

認證方式: 密碼認證,外部認證,全域性認證


外部認證 -
密碼認證大家都熟悉,這裡介紹一下外部認證。使用外部認證需要使用引數os_authent_prefix,
如果作業系統存在一個使用者susan,  而資料庫中存在一個使用者ops$susan, 則只要以susan使用者登
陸OS, 當登陸資料庫時,可以不用提供使用者密碼,即可以以ops$susan登陸到資料庫。若此引數為
空,那麼只要資料庫中存在與作業系統同名的使用者,該使用者就可以透過外部認證登陸資料庫,因
為不完全,oracle不建議採用該認證方式。 

SQL> show parameter os_authent_prefix

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
os_authent_prefix                    string      ops$


全域性認證 -

需要採用oracle的高階安全設定,

 

 

---------------------------


語法:
    CREATE USER username
            IDENTIFIED {BY password|EXTERNALLY}
           [DEFAULT TABLESPACE tablespace_name]
           [TEMPORARY TABLESPACE tablespace_name]
           [QUOTA [n [K|M]] ON tablespace_name]
    [PASSWORD EXPIRE]
           [ACCOUNT LOCK|UNLOCK]
           [PROFILE filename];

引數:

IDENTIFIED BY password:
     用來指定使用者的確認方式為資料庫確認,password是為該使用者指定的密碼

IDENTIFIED   EXTERNALLY:
     指定確認方式為作業系統確認,並且生成一個用作業系統確認的使用者

DEFAULT TABLESPACE:
     使用者預設的表空間,用於在該使用者模式下建立的物件(如表、索引、簇、檢視等)沒有指定表空間時資料庫預設的儲存表空間

TEMPORARY TABLESPACE:
        臨時表空間,用於儲存排序等事務處理時的儲存空間使用者暫存段表空間

QUOTA [n [K|M]] [UNLIMITD] ON tsname:
        指定表空間的限制配額,就是限制允許使用者使用的表空間的數量(大小),UNLIMITD 表示無大小限制

PASSWORD EXPIRE:
     表明使用者第一次登入時要修改密碼

ACCOUNT LOCK|UNLOCK:
         鎖定使用者,lock為鎖定,unlock為未鎖定或解鎖

PROFILE filename:
         使用者的配置檔案,用於限制使用者對系統資源的使用,如果沒有指定,則系統使用預設的使用者配置檔案

舉例:

1. 建立一個資料庫驗證的使用者:

    CREATE USER testUser
     IDENTIFIED BY test
    DEFAULT TABLESPACE USERS
    TEMPORARY TABLESPACE TEMP
QUOTA UNLIMITED ON USERS
PASSWORD EXPIRE
ACCOUNT UNLOCK
PROFILE DEFAULT;
2. 授予使用者連線許可權 (使用者只有擁有CREATE SESSION 許可權才可能與資料庫建立連線)
GRANT CREATE SESSION TO testUser;
3. 修改使用者資訊:
ALTER USER testUser IDENTIFIED BY temp;        -- 修改密碼
ALTER USER testUser ACCOUNT LOCK;        -- 鎖定使用者
4. 刪除使用者:
DROP USER testUser CASCADE;    -- 級聯刪除,即將此使用者擁有的全部物件一起刪除
5. 查詢使用者資訊:
SELECT * FROM ALL_USERS;
SELECT username, password, account_status FROM DBA_USERS;

select username,sid,status from v$session     查詢使用者連線情況!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-678460/,如需轉載,請註明出處,否則將追究法律責任。

相關文章