【學習目標】git
Oracle 數據庫用戶是數據庫安全機制的一種,經過它可管理數據庫對象的全部權和訪問 權限。本章主要內容是介紹Oracle 數據庫用戶、模式(Schema)的概念,數據庫用戶的身 份驗證機制,以及如何建立和管理數據庫用戶。
算法
【本章要點】
• 瞭解ORACLE 驗證方式
• 使用概要文件
• 建立、修改和刪除數據庫用戶
• 獲取數據庫用戶信息sql
【關鍵術語】數據庫
Schema (模式、用戶、方案、綱要) Quota 配額
Database authentication 數據庫驗證Operating system authentication 操做系統驗證
Profiles 概要文件Password limits 口令限制
Resource limits 資源限制Default profile 默認概要文件
Password expiration 口令失效Password verification 口令驗證
Password grace time 口令失效寬限時間
安全
Oracle 數據庫的安全包括在對象級控制數據庫訪問和使用的機制,這是經過數據庫用戶 來實現的,數據庫用戶是定義在數據庫中的一個名稱,它是存取數據庫中信息的通道,是 Oracle 數據庫的基本訪問控制機制。 要訪問數據庫,用戶必須指定有效的數據庫用戶賬戶,並且還要根據該用戶賬戶的要求 成功經過驗證。每個數據庫用戶都有本身的數據庫賬戶。這是Oracle 的最佳實踐建議, 這樣可避免存在潛在的安全漏洞,爲特定的審計活動提供有意義的數據。可是,在極少數情 況下,若干用戶會共享一個公用數據庫賬戶。此時,操做系統和應用程序必須爲數據庫提供足夠的安全性。服務器
數據安全策略決定哪一個用戶訪問特定模式對象,在對象上容許每一個用戶的特定類型操 做。用戶在訪問Oracle 數據庫時必須提供一個數據庫賬戶,只有合法身份的用戶纔可以訪 問數據庫。
在Oracle 數據庫中,每一個數據庫用戶有一系列安全屬性,見圖13-1。網絡
各個屬性的含義以下:
• 惟一的用戶名:用戶名不能超過30個字節,不能包含特殊字符,並且必須以字母開 頭。
• 驗證方法:最多見的驗證方法是口令,可是Oracle Database 10g 支持其它多種驗 證方法,包括生物統計學驗證、證書驗證和標記驗證。
• 默認表空間:若是用戶未指定其它表空間,則可在這個表空間中建立對象。請注意, 具備默認表空間並不意味着用戶具備在該表空間建立對象的權限,也不意味着用戶 具備該表空間(用於建立對象)中的空間限額。這兩項須要另外單獨受權。
• 臨時表空間:用戶可在其中建立臨時對象(如排序和臨時表)的表空間。
• 用戶概要文件:分配給用戶的一組資源與口令的限制。
• 使用者組:由資源管理器使用。
• 鎖定狀態:用戶只可訪問「未鎖定」賬戶。
• 表空間配額:指明用戶在某個表空間中所能使用的存儲空間大小。session
– 授予了DBA 角色
– 具備ADMIN OPTION 的全部權限
– 執行啓動、關閉和某些維護命令時須要使用的賬戶
– 擁有數據字典
– 擁有自動工做量資料檔案庫(AWR)
– 使用AS SYSDBA子句鏈接(任何授予了SYSDBA 權限的用戶都可經過使用 AS SYSDBA 子句鏈接到SYS 賬戶)
● SYSTEM 賬戶授予了DBA 角色(非SYSDBA)。
● 這兩個賬戶不在例行程序操做中使用。
● 只有授予了SYSDBA 或SYSOPER權限的「受權」用戶才能夠啓動或關閉數據庫實 例。
● SYS和 SYSTEM 賬戶是數據庫中必需存在的賬戶,不能將其刪除。
最佳實踐提示:若是應用最少權限原則,則不在例行程序操做中使用這些賬戶。須要DBA 權 限的用戶另外擁有授予了所需權限的獨立賬戶。例如,Jim 有一個名爲jim 的低權限賬戶及 一個名爲jim_dba 的受權賬戶。使用此方法可應用最少權限原則,不須要共享賬戶,並且可 審計各項操做。
數據結構
驗證指的是對要使用數據、資源或應用程序的用戶、設備或其它實體的身份進行驗證。 經過對該身份進行驗證可創建一種信任關係,從而可進一步執行交互。經過驗證可將訪問和
操做與特定的身份聯繫起來,從而實現可靠性。完成驗證後,驗證流程可容許或限制該實 體許可的訪問和操做的級別。 建立用戶時,必須肯定要使用的驗證方法,之後可修改此方法。
併發
又稱操做系統驗證。用戶能夠在不指定用戶名或口令的狀況下鏈接到Oracle 數據庫。 使用外部驗證時,數據庫依賴於基礎操做系統或網絡驗證服務來限制對數據庫賬戶的訪問。 數據庫口令不會用於此類登陸。若是操做系統或網絡服務容許的話,可使用外部驗證來驗 證用戶。若是要執行此操做,請設置 OS_AUTHENT_PREFIX 初始化參數,並在 Oracle 用戶名中使用此前綴。OS_AUTHENT_PREFIX 參數定義了一個前綴,Oracle 數據庫會在每 個用戶的操做系統賬戶名以前添加此前綴。爲了實現與Oracle 軟件早期版本的向後兼容, 此參數的默認值爲 OPS$。用戶嘗試創建鏈接時,Oracle 數據庫會將帶前綴的用戶名與數據 庫中的Oracle 用戶名進行比較。
例如,假定OS_AUTHENT_PREFIX 設置以下:
OS_AUTHENT_PREFIX=OPS$
若是某個用戶的操做系統賬戶名爲tsmith,它須要鏈接到Oracle 數據庫並且已由操做 系統驗證,那麼Oracle 數據庫會檢查是否存在一個對應的數據庫用戶OPS$tsmith,若是存 在這樣的用戶,則容許該用戶創建鏈接。在用戶(已由操做系統驗證)的全部引用中必須包 含OPS$tsmith 中顯示的前綴。
注:在某些操做系統中,OS_AUTHENT_PREFIX 初始化參數的文本是區分大小寫的。
1 SQL> show parameter os_authent_prefix 2 NAME TYPE VALUE 3 ------------------------------------ ----------- ------------------------------ 4 os_authent_prefix string ops$ 5 或者: 6 SQL> select value from v$parameter where name='os_authent_prefix'; 7 VALUE 8 -------------------------------------------------------------------------------- 9 ops$
建立外部操做系統身份驗證的用戶很簡單,假若有一個操做系統用戶名爲dragon,則:
對於LINUX 系統: create user ops$dragon identified externally;
對於WINDOWS 系統,假如登錄ID 是Dragon,域名是MIS: create user "OPS$MIS\DRAGON" identified externally;
建立好用戶後,以dragon 身份登陸到操做系統,而後在直接輸入:sqlplus / 進行登陸 並鏈接到數據庫。
外部驗證的優勢:
● 通過操做系統的身份驗證後,用戶能夠更便捷地鏈接到Oracle,而無需提供用戶 名及密碼。例如,通過操做系統驗證的用戶,按如下方式調用SQL*Plus,便可跳 過輸入用戶名及密碼的步驟:SQLPLUS /
● 在操做系統中集中地進行用戶身份驗證, Oracle 沒必要再存儲及管理用戶密碼,但 Oracle 仍舊須要在數據庫中維護用戶名。
● 在數據庫及操做系統中記錄審計跟蹤數據(audit trail)時可使用相同的用戶名。
又稱爲Oracle 數據庫驗證。
建立的每個用戶都有一個關聯口令,用戶嘗試創建鏈接時,必須提供這個口令。設置 口令時,可使該口令當即失效,這會強制用戶在首次登陸後更改口令。若是決定要使用戶 口令失效,請確保用戶可以更改口令。有些應用程序不具有此功能。
在(客戶機/服務器之間和服務器/服務器之間)創建網絡鏈接期間,系統老是先經過使 用修改過的數據加密標準(DES) 算法,以自動透明方式對口令加密,而後經過網絡發送這 些口令
在使用SQL*Plus 時,經過口令身份驗證進行鏈接的語法以下: CONNECT username / password [ @db_alias ]
● SQL> connect scott/tiger;
● SQL> conn scott/tiger;
● [oracle@oracle ~]$ sqlplus scott/tiger;
這是Oracle 通常用戶使用得最多的一種身份驗證方式。在使用口令身份驗證進行鏈接 時,實例將針對在數據字典中的用戶帳戶存儲的口令。驗證給定的口令。爲此,數據庫必須 處於打開狀態;從邏輯上講,在使用口令身份驗證鏈接時,不可能發出STARTUP 命令或 者SHUTDOWN 命令。不容許SYS 用戶以口令身份驗證的方式進行鏈接,SYS 只能使用 口令文件、操做系統或LDAP 身份驗證。
數據庫驗證表示用戶名和口令的驗證由Oracle 完成,用戶在鏈接數據庫時必須同時提 供用戶名和口令。採用數據庫驗證具備如下一些優勢:
● 用戶賬戶及其身份驗證信息所有存儲在數據庫中,驗證由Oracle Server 完成,而不 須要藉助數據庫外的任何控制。
● 當使用數據庫驗證時,Oracle 提供了嚴格的口令管理特徵以增強口令的安全性,例 如賬戶鎖定、口令有效期以及口令長度、複雜度等。
● 易於管理。
使用Oracle Advanced Security 選項時,可經過全局驗證(一種嚴格的驗證方法)並使用生物統計學、x509 證書、標記設備和Oracle Internet Directory 來識別用戶。
● 基於第三方的身份驗證技術
若是系統中存在(DCE,Kerberos,或SESAME 等)的網絡身份驗證服務(network authentication service),Oracle 可使用這些網絡服務進行身份驗證。在使用網絡身份驗證 服務時,應注意其對網絡角色(network role)及數據庫連接(database link)的影響。
● 基於PKI 的身份驗證
基於公共密鑰加密(public key cryptography)的身份驗證系統可以爲用戶客戶端生成數 字證書(digital certificate),客戶端使用此證書在業務服務器上進行身份驗證,而不是直接 和身份驗證服務器交互(authentication server)。Oracle 提供了支持公共密鑰(public key) 及數字證書的公共密鑰基礎結構(public key infrastructure,PKI),其中包含如下組件:
− 基於SSL(Secure Sockets Layer(安全套接字層))的身份驗證及安全會話密鑰(secure session key)管理。
− Oracle Call Interface 函數及PL/SQL 函數,用於使用私有密鑰(private key)及證書來 保護用戶指定的數據,或用可信證書(trusted certificate)驗證數據上的簽名(signature)。
− 可信證書,用於驗證第三方實體的身份,確認其是否爲可信的用戶證書籤署者。
− Oracle wallet,用於儲存用戶私有密鑰,用戶證書,及用戶信任點(trust point)(便可信 的認證機構)集的數據結構。
− Oracle Wallet Manager,用於管理及編輯Oracle wallet 安全身份證實(security credentials)的單機Java 應用程序。
− 由Oracle 以外的認證機構簽署併發布的X.509v3 證書。
− Oracle Internet Directory,用於管理用戶的權限及安全屬性,包括經過X.509 證書進行用戶身份驗證。OID 可以確保屬性級(attribute-level)的訪問控制,並使讀,寫,及更 新等權限能夠控制到具體的用戶,例如管理員。
− Oracle Enterprise Security Manager,實現集中化的權限管理,從而簡化管理員的工做, 並提高系統的安全級別。用戶能夠經過此組件在Oracle Internet Directory 中存儲或提 取角色信息。
− Oracle Enterprise Login Assistant 是一個基於Java 的工具,用於打開或關閉用戶的 wallet,從而控制應用程序是否採用基於SSL 的安全通信。
● 遠程身份驗證
Oracle 可以利用遠程撥號用戶服務(Remote Dial-In User Service,RADIUS)支持遠程用 戶身份驗證。RADIUS 是一個標準的輕量級協議,主要用於用戶身份驗證,受權,及審計 (accounting)。
數據庫管理員可以執行普通數據庫用戶不應執行的特殊操做(例如啓動或關閉數據庫)。 Oracle 爲數據庫管理員用戶提供更爲安全的身份驗證方式。
在UNIX 和Linux 中,默認狀況下,DBA 屬於install 操做系統組。該組具備建立和 刪除數據庫文件所需的權限。
● DBA 必須具備建立或刪除文件的操做系統權限。
● 普通數據庫用戶不該具備建立或刪除數據庫文件的操做系統權限。
只在使用口令文件或操做系統特權與權限完成驗證後,才受權創建SYSDBA 和 SYSOPER 鏈接。若是使用操做系統驗證,那麼數據庫就不使用提供的用戶名和口令。當口 令文件不存在,或者該文件中不存在提供的用戶名和口令,或者未提供用戶名和口令時,就 使用操做系統驗證。 可是,若是使用口令文件成功完成了驗證,則使用用戶名記錄鏈接。若是使用操做系統 成功完成了驗證,則表示這是一個CONNECT/鏈接,這種鏈接不記錄具體用戶。
注:操做系統驗證優先於口令文件驗證。特別是,若是您是操做系統中OSDBA 或 OSOPER 組的成員,並且以SYSDBA 或SYSOPER 身份進行鏈接,則會使用關聯的管理 權限爲您創建鏈接,無論您指定的用戶名和口令是什麼。
● 經過口令文件或操做系統驗證SYSDBA 和SYSOPER 鏈接。
– 口令文件驗證會按名稱記錄DBA 用戶。
– 操做系統驗證並不記錄具體用戶。
– 對於SYSDBA 和SYSOPER,操做系統驗證優先於口令文件驗證。
要爲帳戶啓用操做系統和口令身份驗證(兩者是相配的),必須爲用戶授予SYSDBA 或者 SYSOPER 權限: GRANT [ sysdba | sysoper ] TO username ;
若是向用戶授予這些權限之一或者全部權限,則會將用戶口令從數據字典複製到外部口令文件中,此時,即便數據庫未處於打開狀態,實例也能夠讀取口令。
要使用口令文件身份驗證,用戶能夠在使用SQL*Plus 時經過如下語法鏈接: CONNECT username / password[ @db_alias] AS [ SYSOPER | SYSDBA ] ;
注意,可以使用口令文件身份驗證,經過Oracle Net 鏈接到遠程數據庫。 要使用操做系統身份驗證,用戶必須被確認爲有權限訪問Oracle 二進制文件的操做 系統用戶以後,且在使用SQL*Plus 時經過如下語法鏈接以前首先登錄到數據庫服務器: CONNECT / AS [ SYSOPER | SYSDBA ] ; 與SYSDBA 和SYSOPER 以同一種方式運行的第三種權限是SYSASM,此權限僅適 用於ASM 實例。
Oracle 數據庫在密碼文件(password file)中記錄被授予了SYSDBA 及SYSOPER 權 限的數據庫用戶,這些權限可以執行如下操做:
具有SYSOPER 權限的數據庫管理員可以執行STARTUP,SHUTDOWN,ALTER DATABASE OPEN/MOUNT,ALTER DATABASE BACKUP,ARCHIVE LOG,及RECOVER 命令,並具有RESTRICTED SESSION 權限。
具有SYSDBA 權限的數據庫管理員擁有全部系統權限(system privilege)及權限的 ADMIN OPTION 選項,還擁有SYSOPER 所擁有的所有系統權限。此外,可以執行 CREATE DATABASE 命令,並可以執行基於時間的恢復操做(time-based recovery)。
● remote_login_passwordfile
查看是否容許遠程登陸使用口令文件進行身份驗證
SHARED 一個或多個數據庫可使用口令文件。能夠包含SYS 或者非SYS 的口令文件。
EXCLUSIVE 新版本和SHARED 功能一致。
NONE 不容許遠程使用口令文件驗證,如遠程用SYS 帳號鏈接Oracle 將會報錯。
1 SQL> show parameter remote_login_passwordfile NAME TYPE VALUE 2 ------------------------------------ ----------- -------------------- 3 remote_login_passwordfile string EXCLUSIVE 4 SQL> alter system set remote_login_passwordfile='NONE' scope=spfile 5 SQL> startup force 6 --進行遠程鏈接,報錯,實際是參數值被更改: 7 SQL> conn sys / oracle@orcl as sysdba 8 ERROR: 9 ORA-01017: invalid username/password; logon denied
1 SQL> select * from v$pwfile_users; 2 USERNAME SYSDB SYSOP 3 ------------------------------ ----- ----- 4 SYS TRUE TRUE
Schema 模式是一系列對象的集合。一個模式只可以被一個數據庫用戶所擁有,而且模 式的名稱與這個用戶的名稱相同。ORACLE 數據庫中的每一個用戶都擁有一個惟一的模式, 他所建立的全部模式對象都保存在本身的模式中。模式對象的類型有表、索引、簇、觸發器、 PL/SQL、序列、同義詞、視圖、存儲過程和存儲函數等,固然,Oracle 中並非全部的對 象都是模式對象,非模式對象有:
• 表空間
• 用戶
• 角色
• 回滾段
• 概要文件
當用戶在數據庫中建立一個模式對象後,這個模式對象默認地屬於這個用戶的模式。一 個用戶能夠訪問其模式的全部對象,但其它用戶要訪問另外一個模式的對象時,必須在對象名 前加上它所屬的模式名。例如用戶SCOTT 檢索其模式的表EMP 時,能夠直接執行語句: SELECT * FROM EMP; 可是,若是要訪問SMITH 模式的CLASS 表時,則必須執行語句: SELECT * FROM SMITH.CLASS。
初學者在剛剛接觸模式概念時,經常不清楚數據庫用戶與模式之間的區別。形成這種情 況的緣由是由於在Oracle 數據庫中,模式與數據庫用戶是一一對應,每一個數據庫用戶都擁 有一個與他的用戶名相同的模式。所以,在Oracle 數據庫中,模式與用戶兩個概念的差異 很小,常常能夠替換。例如「用戶A 擁有TEMP 表」和「模式A 擁有TEMP 表」兩句話的意義是相同的。所以沒必要在語言上徹底區分模式與用戶,可是,必定要清楚模式與用戶是兩個完 全不一樣的概念。
1.1.7.1.1 概要文件的做用
概要文件是口令限制和資源限制的命名集合,是Oracle 安全策略的重要組成部分,利 用概要文件能夠對數據庫用戶進行口令管理和資源限制。例如使用概要文能夠指定口令有效 期、口令校驗函數、用戶鏈接時間以及最大空閒時間等。概要文件具備如下一些做用:
• 限制用戶執行消耗資源過分的SQL 操做。
• 自動斷開空閒會話。
• 在大而複雜的多用戶數據庫系統中合理分配資源。
• 控制用戶口令的使用。
在創建數據庫時,Oracle 會自動創建名稱爲DEFAULT 的默認概要文件,初始的 DEFAULT 概要文件的全部口令及資源限制選項值均爲UNLIMITED,即未進行任何口令及 資源限制。當創建用戶時,若是不指定概要文件,則Oracle 會將DEFAULT 概要文件分配給 該用戶。根據用戶所承擔任務的不一樣,DBA 應該創建不一樣的概要文件,並將概要文件分配 給相應用戶。一個用戶只能分配一個概要文件,一個概要文件能夠同時包含口令限制和資源 限制。1.1.7.1.2 概要文件內容
概要文件內容包括口令和資源的限制,下面分別介紹這兩部分的有關參數。
1) 口令策略參數
口令策略參數能夠實現賬戶鎖定、口令的過時以及口令的複雜度等策略,在概要文件中 的口令參數能夠有如下幾個:
• FAILED_LOGIN_ATTEMPTS:該參數指定容許的輸入錯誤口令的次數,超過該次 數後用戶賬戶被自動鎖定。
• PASSWORD_LOCK_TIME:用於指定指定帳戶被鎖定的天數(單位:天)。
• PASSWORD_LIFE_TIME:指定口令的有效期(單位:天)。若是在達到有效期前用 戶尚未更換口令,它的口令將失效,這時必須由DBA 爲它從新設置新的口令。
• PASSWORD_GRACE_TIME:用於指定口令失效的寬限期(單位:天)。• PASSWORD_REUSE_TIME:指定可以重複使用一個口令前必須通過的時間(單位: 天)。
• PASSWORD_REUSE_MAX:用於指定在重複使用口令以前必須對口令進行修改的 次數。PASSWORD_REUSE_TIME 和PASSWORD_REUSE_MAX 兩個參數只能設 置一個,另外一個必須爲UNLIMITED。
• PASSWORD_VERIFY_FUNCTION:指定驗證口令複雜度的函數。Oracle 提供了一 個默認的口令校驗函數,這能夠經過運行腳本utlpwdmg.sql 來創建該函數,腳本保 存在RACLE_HOME\rdbms\admin 目錄中。DBA 也能夠經過修改腳原本實現本身 的口令校驗函數。
2) 資源限制參數
利用概要文件,能夠對如下系統資源進行限制。
• CPU 時間
• 邏輯讀
• 用戶的併發會話數
• 空閒時間
• 鏈接時間
• 私有SGA 區
對這些資源的限制是經過在概要文件中設置參數來實現的,參數的值能夠是一個整數, 也能夠是UNLIMITED(即不受限制),還能夠是DEFAULT(使用DEFAULT 概要文件中的 參數設置)。下面分別介紹有關參數:
• CPU_PER_SESSION:限制每一個會話所能使用的CPU 時間。參數值是一個整數, 單位是百分之一秒。
• SESSIONS_PER_USER:限制每一個用戶所容許創建的最大併發會話數。
• CONNECT_TIME:限制每一個會話能鏈接到數據庫的最長時間,超過這個時間會話 將自動斷開。參數值是一個整數,單位是分鐘。
• IDLE_TIME:限制每一個會話所容許的最長連續空閒時間,超過這個時間會話將自 動斷開。參數值是一個整數,單位是分鐘。
• LOGICAL_READS_PER _SESSION:限制每一個會話所能讀取的數據塊數目。
• PRIVATE_SGA:每一個會話分配的私有SGA 區大小(以字節爲單位)。該參數只對 共享服務器模式有效。• CPU_PER_CALL:用於指定每條SQL 語句可佔用的最大CPU 時間,單位是百分 之一秒。
• LOGICAL_READS_PER_CALL:用於指定每條SQL 語句最多所能讀取的數據塊數 目。
Oracle 數據庫中不一樣用戶帳戶具備不一樣的口令,如何防止其餘人竊取帳戶密碼是DBA 要重點關切的問題。爲了增強用戶帳戶的安全性,Oracle 提供了概要文件來管理口令,概要 文件管理口令有鎖定帳戶、終止口令、口令歷史以及口令校驗等四種安全保護方式。你們需 要注意,前面介紹的概要文件中共包含了7 個口令管理選項,若是僅指定某個或某幾個選項, 那麼其餘選項將自動使用DEFAULT 概要文件的相應選項值。
使用概要文件管理口令主要步驟是先建立概要文件,而後設置相關口令參數,最後把概 要文件分配給用戶。創建概要文件是使用CREATE PROFILE 命令來完成的,通常狀況下建 立概要文件是由DBA 來完成的,若是要以其餘用戶身份創建概要文件,則要求該用戶必須 具備CREATE PROFILE 系統權限。
1.1.7.2.1 鎖定賬戶
若是用戶在指定的次數內嘗試登陸系統失敗,系統會在設置的持續時間內鎖定賬戶。
• FAILED_LOGIN_ATTEMPTS 參數指定在鎖定賬戶前嘗試登陸失敗的次數。
• PASSWORD_LOCK_TIME 參數指定在經歷指定的嘗試登陸失敗次數後鎖定 賬戶的天數。
若是創建PROFILE 時沒有提供PASSWORD_LOCK_TIME 選項,將自動使用默認 值(UNLIMITED),在這種狀況下,須要DBA 手工解鎖經過使用概要文件,能夠限制登陸失敗 次數,若是連續登陸的失敗次數超出必定範圍,那麼Oracle 會自動鎖定帳戶。1 --【實例16-1】爲了增強devp 用戶的口令安全,要限制其登陸失敗次數爲3。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)建立概要文件,設定相關參數 6 SQL>CREATE PROFILE devp_lock LIMIT FAILED_LOGIN_ATTEMPTS 3; 7 --配置文件已建立 8 --3) 分配概要文件給用戶devp,這既能夠在創建用戶時使用PROFILE 子句,也能夠在 創建用戶以後使用ALTER USER 語句修改。 9 10 SQL>ALTER USER devp PROFILE devp_lock; 11 用戶已更改。 12當將概要文件分配給devp 用戶以後,若是以devp 鏈接到數據庫時,連續登陸失敗 次數達到三次,那麼系統會自動鎖定該用戶帳戶。此時,即便爲用戶devp 提供了正確的口 令,也將沒法鏈接到數據庫,並顯示錯誤信息。例如:
1.1.7.2.2 終止口令
使用戶口令具備生存期,口令在今生存期以後會失效,並且可能已更改。
• PASSWORD_LIFE_TIME 參數指定口令的生存期(以天爲單位),此時間以後, 口令會失效。
• PASSWORD_GRACE_TIME 參數指定口令失效後首次成功登陸時用於更改 口令的寬限期(以天爲單位)。
注:經過使口令失效和鎖定SYS、SYSMAN 和DBSNMP 賬戶,可避免出現Enterprise Manager 不正常運行的狀況。應用程序必須捕獲「口令到期」警告消息並處理口令更 改;不然,寬限期一到期,會在緣由不明的狀況下鎖定用戶。
1 --【實例16-2】強制用戶devp 每隔10 天修改其自身口令,並設置兩天寬限期。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)建立概要文件,設定相關參數 6 SQL>CREATE PROFILE devp_life LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2; 7 配置文件已建立 8 --3) 分配概要文件給用戶devp 9 SQL>ALTER USER devp PROFILE devp_life; 10 用戶已更改。 11 --當將概要文件分配給用戶devp 以後,第10 天登陸會顯示警告信息: 12 SQL>connect devp/development 13 ERROR: 14 ORA_28002:the password will expire within 2 days 15 已鏈接。 16 -- 若是第10 天未改變口令,那麼第11 天登陸時仍然會顯示相似警告信息。但用戶若是第11 天仍然未改變口令,那麼第12 天登陸時系統會強制你改變口令,並顯示以下信息: 17 SQL>connect devp/development 18 19 ERROR: 20 ORA-28001: the password has expired 21 更改devp 的口令 22 新口令: 23 從新鍵入新口令: 24 口令已更改 25 已鏈接。 261.1.7.2.3 口令歷史
經過覈對新口令可確保在指定的時間內或者在指定的口令更改次數內不重複使用口令。 經過使用下列其中一項來進行覈對:
• PASSWORD_REUSE_TIME:用於指定口令可重用時間
• PASSWORD_REUSE_MAX:用於指定在重用口令以前口令須要改變的次數
注意: 這兩個參數是互相排斥的, 所以, 若是其中一個參數的設置值不是 UNLIMITED(若是DEFAULT 概要文件的設置值爲UNLIMITED,則爲DEFAULT), 則另外一個參數必須設置爲UNLIMITED。 假定devp 原有口令爲development,終止口令時新口令仍然能夠設置爲development, 這種作法顯然失去了終止口令的含義。爲了強制用戶使用不一樣口令,可使用口令歷史選項。
1 --【實例16-3】爲了防止用戶devp 重用舊口令,強制該用戶在口令終止10 天以內不能重 用之前口令。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 --2)建立概要文件,設定相關參數 5 SQL>CREATE PROFILE devp_his LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2 PASSWORD_REUSE_TIME 10 PASSWORD_REUSE_MAX UNLIMITED; 6 配置文件已建立 7 --3) 分配概要文件給用戶devp 8 SQL>ALTER USER devp PROFILE devp_his; 9 用戶已更改。 10 -- 注意,前面已經提到過,當使用口令歷史選項時, PASSWORD_REUSE_TIME 和 PASSWORD_REUSE_MAX 兩個參數只能設置一個,另外一個必須爲UNLIMITED。 當將概要文件分配給用戶devp 以後,若是前11 天沒有修改用戶口令,那麼在第12 天 登陸時,Oracle 會強制終止口令,並要求用戶改變口令。但若是仍然使用過去的口令,則口 令修改不能成功,以下所示: 11 12 SQL>CONNECT devp/development 13 ERROR: 14 ORA-28001: the password has expired 15 更改devp 的口令 16 新口令: 17 從新鍵入新口令: 18 ERROR: 19 ORA-28007: the password cannot be reused 20 口令未更改 21
1.1.7.2.4 口令校驗
口令校驗是指使用PL/SQL 函數檢查口令的有效性。在設置口令時,多數人都習慣於 按照本身易記的方式(如用戶名、生日等)來指定口令。但若是其餘人很瞭解用戶的各類習慣, 那麼口令將再也不安全。經過使用口令校驗函數,能夠強制用戶使用複雜的口令。儘管這種作 法會給用戶帶來一些小麻煩,但卻能夠大大增強口令的安全性。你們須要注意,若是要使用 口令校驗函數,那麼必需要以SYS 用戶創建口令校驗函數,而且口令校驗函數必須知足如
下規範:
1 function_name( 2 userid_parameter IN VARCHAR2(30), 3 password_parameter IN VARCHAR2(30), 4 old_password_parameter IN VARCHAR2(30) 5 )
RETURN BOOLEAN
其中,userid_parameter 對應於用戶名, password_parameter 對應於用戶的新口令, old_password_parameter 對應於用戶的舊口令。若是函數返回值爲TRUE,則表示新口令可 以使用;但若是返回值爲FALSE,則表示新口令不知足函數規則。另外, Oracle 也提供了 默認的口令校驗函數VERIFY_FUNCTION,該口令校驗函數具備如下一些功能:
• 口令最少爲4 個字符。
• 口令不能與用戶名相同。
• 新口令與舊口令至少有三個字符不一樣。
• 口令至少包含一個阿拉伯字母、一個數字和一個特殊字符。
能夠經過以SYS 用戶身份登陸後運行腳本utlpwdmg.sql 來創建默認的口令校驗函數, 腳本保存在ORACLE_HOME\rdbms\admin 目錄中。DBA 也能夠經過修改腳原本實現本身的 口令校驗函數。
1 --【實例16-4】爲用戶devp 指定口令校驗函數以強制它使用複雜口令 2 3 --1)以管理員身份登陸 4 SQL>CONNECT / AS SYSDBA 5 已鏈接。 6 --2)運行腳本utlpwdmg.sql 創建默認口令校驗函數VERIFY_FUNCTION。(固然也可自 己建立口令校驗函數) 7 SQL>@%ORACLE_HOME%/rdbms/admin/utlpwdmg.sql 8 函數已建立。 9 --3)建立概要文件,設定參數 10 SQL>CREATE PROFILE devp_verify LIMIT PASSWORD_LIFE_TIME 10 PASSWORD_GRACE_TIME 2 PASSWORD_VERIFY_FUNCTION verify_function; 11 配置文件已建立 12 -4) 分配概要文件給用戶devp 13 SQL>ALTER USER devp PROFILE devp_verify; 14 用戶已更改。 15 -這樣,當修改devp 用戶口令時,若是不知足函數規則,會出錯。如把devp 的口令改爲 與用戶名同樣,則會顯示以下錯誤信息: 16 SQL>alter user devp identified by devp; 17 alter user devp identified by devp 18 * 19 ERROR 位於第1 行: 20 ORA-28003: 指定口令的口令驗證失敗 21 ORA-20001: Password same as or similar to user 22 --另外,若是你不想使用口令校驗函數,則能夠將PASSWORD_VERIFY_FUNCTION 選 項設置爲NULL。 23 24 25
概要文件不只可用於管理用戶口令,也可用於限制用戶的資源佔用。概要文件既能夠限 制整個會話的資源佔用,也能夠限制調用級(SQL 語句)的資源佔用。但你們須要注意,若是 要使用概要文件管理資源,則必需要激活資源限制功能,這能夠經過設置初始化參數 RESOURCE_LIMIT 爲TRUE 作到: ALTER SYSTEM SET RESOURCE_LIMIT=TRUE; 使用概要文件管理資源的步驟同管理口令的步驟同樣,也是先建立概要文件,而後設置 相關資源參數,最後把概要文件分配給用戶。1 CREATE PROFILE "TEMPPROFILE" 2 /*【通常信息】選項卡對應的配置參數*/ 3 LIMIT CPU_PER_SESSION 1000 --//CPU 會話 4 CPU_PER_CALL 1000 --//CPU 調用 5 CONNECT_TIME 30 --//鏈接時間 6 IDLE_TIME DEFAULT --//空閒時間 7 SESSIONS_PER_USER 10 --//並行會話數 8 LOGICAL_READS_PER_SESSION 1000 --//讀取數/會話 9 LOGICAL_READS_PER_CALL 1000 --//讀取數/調用 10 PRIVATE_SGA 16K --//專用SGA 11 COMPOSITE_LIMIT 1000000 --//組合限制 12 /*【口令】選項卡對應的配置參數*/ 13 FAILED_LOGIN_ATTEMPTS 3 --//容許輸入的錯誤口令的次數 14 PASSWord_LOCK_TIME 5 --//輸入錯誤口令而被鎖定的天數 15 PASSWORD_GRACE_TIME 60 --//口令過時時間天數 16 PASSWORD_LIFE_TIME 30-- // 17 PASSWORD_REUSE_MAX 18 DEFAULT PASSWORD_REUSE_TIME 30 19 PASSWORD_VERIFY_FUNCTION DEFAULTV --//驗證用戶口令複雜度的函數1.1.7.3.1 限制會話資源
當用戶鏈接到數據庫時,Oracle 將建立一個會話(session)。每一個會話都將消耗Oracle 所在計算機的CPU 時間及內存。用戶能夠在會話級( session level)設置多種資源限制 (resource limit)。
若是用戶超過了某一會話級資源限制,Oracle 將終止(回滾)當前執行的語句,並通知 用戶此會話超出資源限制。此時,當前會話內已經執行的語句不受資源限制的影響,而用戶 則只能執行COMMIT,ROLLBACK,或斷開鏈接(disconnect)(如斷開鏈接,當前事務將 被提交)。用戶的其餘全部操做都將致使報錯。在事務被提交或回滾後,用戶在當前會話內 也不能執行其餘任何操做。1 --【實例16-5】數據庫最多容許兩個開發人員以devp 用戶登陸進行應用開發,每一個會話鏈接時間不能超過30min,會話空閒時間不能超過10min。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)建立概要文件,設定參數 6 SQL>CREATE PROFILE devp_session LIMIT CPU_PER_SESSION 5000 SESSIONS_PER_USER 2 CONNECT_TIME 30 IDLE_TIME 10; 7 配置文件已建立 8 --3) 分配概要文件給用戶devp 9 SQL>ALTER USER devp PROFILE devp_session; 10 用戶已更改。 11 --由於在創建概要文件時指定SESSION_PER_USER 選項爲2,即容許用戶最多能夠同時創建兩個會話,因此若是用戶devp 的併發會話個數達到兩個,那麼當創建第三個會話時則會顯示以下錯誤信息: 12 SQL>CONNECT devp/development 13 ERROR: 14 ORA-02391:exceeded simultaneous SESSIONS_PER_USER limit 15 --由於IDLE_TIME 選項被設置爲10,因此若是會話空閒時間超過10min,那麼Oracle會自動斷開會話。管理員能夠限制用戶併發會話數(concurrent sessions for each user)。每一個用戶的併發會 話數不能超過預設值。
管理員能夠限制一個會話的空閒時間(idle time)。若是會話內兩次Oracle 調用間的間 隔時間達到了限制值,當前事務將被回滾,會話將被終止(aborted),會話所佔用的資源將 被系統回收。下次會話將獲得報錯信息,提示用戶已經終止了與實例的鏈接。此限制的設置 單位爲分鐘。
當會話因爲超出空閒時間限制而被終止以後,進程監視器(process monitor,PMON) 後臺進程將對被終止的會話進行清理。在PMON 完成此過程前,統計用戶及會話資源使用 時仍將包含被終止的會話。
管理員能夠限制每一個會話的鏈接持續時間。若是會話持續鏈接時間超出限制值,當前事 務將被回滾,會話將被移除(dropped),會話所佔用的資源將被系統回收。此限制的設置單 位爲分鐘。
Oracle 不會持續不斷地監控會話的空閒時間及鏈接時間,由於這樣作將下降系統性能。
Oracle 的作法是每隔數分鐘檢查一次。所以,在Oracle 依據資源限制終止會話前,會 話有可能已經略微超出了限制時間(例如,超出5 分鐘)。1.1.7.3.2 限制調用資源
SQL 語句每次運行時,Oracle 都將執行一系列操做來處理此語句。在處理過程當中,不 同的執行階段須要向數據庫發起不一樣的調用。爲了防止某個調用過分地使用系統資源, Oracle 容許管理員在調用級(call level)設定多種資源限制(resource limit)。
若是用戶超過了調用級資源限制,Oracle 將中止執行語句,並進行回滾,以後向用戶 報錯。此時,當前會話內已經執行的語句不受資源限制的影響,用戶會話也將保持鏈接狀態。
當Oracle 執行SQL 語句或用戶的其餘各種調用(call)時,系統須要必定的CPU 時 間來處理此調用。普通的調用所需的CPU 時間較少。可是須要處理大量數據的語句,或失 控的查詢(runaway query)可能佔用大量的CPU 時間,這減小了其餘處理任務可用的CPU 時間。
爲了防止CPU 時間被不受控地佔用,管理員能夠限制會話內每一個調用使用的CPU 時 間,以及會話中全部Oracle 調用的CPU 時間之和。設置及衡量調用或會話可以使用的CPU時間的單位爲百分之一秒。1 ---【實例16-6】限制用戶devp 的調用級資源。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)建立概要文件,設定參數 6 SQL>CREATE PROFILE devp_call LIMIT CPU_PER_CALL 200 LOGICAL_READS_PER_CALL 3; 7 配置文件已建立 8 --3) 分配概要文件給用戶devp 9 SQL>ALTER USER devp PROFILE devp_call; 10 用戶已更改。 11 --由於在創建概要文件devp_call 時指定了LOGICAL_READS_PER_CALL 選項爲3,因此若是執行單條SQL 語句訪問的數據塊總數超過3,則會顯示以下錯誤信息: 12 SQL> CONNECT devp/development 13 已鏈接。 14 SQL>select * from scott.emp; 15 select * from scott.emp 16 * 17 ERROR 位於第1 行: 18 ORA-02395: 超出IO 使用的調用限制
1.1.7.3.3 其餘資源
1) 邏輯讀取
輸入/輸出(Input/output,I/O)是數據庫系統中開銷最大的操做。I/O 操做密集的SQL 語 句可能會佔用大量內存及硬盤,並與其餘須要一樣資源的數據庫操做產生競爭。 爲了防止I/O 被獨佔,Oracle 能夠限制調用及會話的邏輯數據塊讀取(logical data block read)。邏輯數據塊讀取包含從內存及磁盤讀取數據。設置及衡量調用或會話可以使用的邏輯 讀取的單位爲數據塊數量。
LOGICAL_READS_PER_SESSON:用於指定會話的最大邏輯讀取次數.
LOGICAL_READS_PER_CALL:用於限制每次調用的最大邏輯I/O 次數.
2) CPU
能夠每一個會話或每一個調用爲基礎限制CPU 資源。
「CPU/會話」限制爲1,000 表示:
當使用此概要文件的任一會話佔用10 秒以上的CPU 時間(CPU 時間限制以百分之一 秒爲單位)時,該會話就會收到錯誤並被註銷:
ORA-02392: exceeded session limit on CPU usage, you are being logged off每一個調用限制的做用是相同的,可是它不是限制用戶的整個會話,而是防止任一命令佔 用過多的CPU。若是「CPU/調用」受到限制,並且用戶超出了限制,命令就會停止,用戶還 會收到錯誤消息,例如:
ORA-02393: exceeded call limit on CPU usage
CPU_PER_SESSION:用於指定每一個會話能夠佔用的最大CPU 時間.
CPU_PER_CALL:限制每次調用(解析,執行或提取數據)可佔用的最大CPU 時間(單位:百 分之一秒)
3) 網絡/內存:每一個數據庫會話都會佔用系統內存資源和網絡資源(如會話來自服務 器的非本地用戶)。能夠指定如下參數:
- 鏈接時間:指示用戶在自動註銷前能夠保持鏈接的分鐘數
- 閒置時間:指示用戶會話在自動註銷前能夠保持閒置的分鐘數。只會計算服務 器進程的閒置時間。閒置時間中不考慮應用程序活動。IDLE_TIME 限制不受 長時間運行查詢和其它操做的影響。
- 並行會話:指示使用數據庫用戶賬戶能夠建立多少並行會話
- 專用SGA:限制系統全局區域(SGA) 中執行排序、合併位圖等操做佔用的空間。
此限制僅在會話使用共享服務器時纔有效。(在「配置Oracle Network 環境」 一課中會討論共享服務器)。
PRIVATE_SGA:用於指定會話在共享池中能夠分配的最大總計私有空間.須要注意,該選 項只使用與共享服務器模式.
COMPOSITE_LIMIT:用於指定會話的總計資源消耗(單位:服務單元).oracle 會根據
CPU_PER_SESSION,CONNECT_TIME,LOGICAL_READS_PER_SESSION 以及 PRIVATE_SGA 的求權結果取得總計服務單元.
SESSIONS_PER_USER:用於指定每一個用戶的最大併發會話個數.
CONNECT_TIME:用於指定會話的最大鏈接時間.
IDLE_TIME:用於指定會話的最大空閒時間.
經過概要文件還可提供組合限制。組合限制以「CPU/會話」、「讀取/會話」、「鏈接時 間」和「專用SGA」的加權組合爲基礎。
下面以限制賬戶DEVEP 會話佔用CPU 時間不超過50 秒,邏輯讀取次數不超過100 次爲 例,說明使用PROFILE 限制會話資源的方法.爲了控制會話資源,首先應執行CREATE PROFILE 命令創建PROFILE,而後使用ALTER USER 命令將PROFILE 分配給用戶DEVEP.
CREATE PROFILE session_limit LIMIT
CPU_PER_SESSION 5000 LOGICAL_READS_PER_SESSION 100;ALTER USER devep PROFILE session_limit;
1.1.7.4.1 修改概要文件
當口令和資源限制沒法知足用戶的實際需求時,你就須要修改概要文件中的口令及資源 限制參數。修改概要文件是使用ALTER PROFILE 命令由DBA 來完成的;若是要以其它用 戶身份修改概要文件,則要求該用戶必須具備ALTER PROFILE 系統權限。須要注意,修改 概要文件對已存在會話沒有影響,而只對新會話起做用。
1 --【實例16-7】修改用戶devp 的口令和資源限制。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)修改概要文件 6 SQL>ALTER PROFILE devp_call LIMIT SESSIONS_PER_USER 2 FAILED_LOGIN_ATTEMPTS 2 CPU_PER_CALL 200; 7 配置文件已更改 8 --修改用戶devp 當前的概要文件後,當devp 從新登陸後,其口令和資源限制就發生變化 了,如該用戶的口令失敗次數只能兩次。
1.1.7.4.2 刪除概要文件
當某個概要文件不須要時,能夠刪除它。刪除概要文件是使用DROP PROFILE 命令由 DBA 來完成的,若是要以其餘用戶身份刪除概要文件,則要求該用戶必須具備DROP PROFILE 系統權限。1 --【實例16-8】刪除概要文件devp_call 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 ---2)刪除概要文件 6 SQL>DROP PROFILE devp_call CASCADE; 7 配置文件已丟棄 8 -- 須要注意,若是概要文件已經被分配給某個用戶,那麼當刪除概要文件時必須帶有CASCADE 選項。若是用戶的概要文件已經被刪除,Oracle 將自動爲用戶從新指定DEFAULT 概要文 件。 9
1.1.7.4.3 顯示概要文件信息
Oracle 提供了幾個數據字典視圖查詢有關概要文件的信息。下面分別介紹。
1) 顯示用戶的概要文件
當創建或修改用戶時,經過PROFILE 子句能夠爲用戶分配概要文件。若是沒有顯式地 分配概要文件,那麼Oracle 會將DEFAULT 概要文件自動分配給用戶。那麼如何肯定用戶的 概要文件呢?經過查詢數據字典視圖BA_USERS,能夠取得用戶的概要文件信息。
1 --【實例16-9】查詢用戶devp 的概要文件 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)查詢 6 SQL>SELECT profile FROM DBA_USERS WHERE username=’DEVP’; 7 PROFILE 8 ------------------------ 9 DEFAULT
2) 顯示概要文件的內容
數據字典視圖DBA_PROFILES 中包含了每一個概要文件的內容,經過查詢該數據字典視 圖能夠取得用戶的口令限制及資源限制信息。
1 --【實例16-10】查詢概要文件devp_session 的口令和資源限制。 2 --1)以管理員身份登陸 3 SQL>CONNECT / AS SYSDBA 4 已鏈接。 5 --2)查詢 6 SQL>SELECT * FROM DBA_PROFILES WHERE profile=’DEVP_SESSION’; 7 PROFILE RESOURCE_NAME RESOURCE_TYPE LIMIT 8 ------------------------------------------------------------------------------------------------- 9 DEVP_SESSION CONNECT_TIME KERNAL 30 10 DEVP_SESSION IDLE_TIME KERNAL 10 11 DEVP_SESSION SESSIONS_ PER_USER KERNAL 3 12 DEVP_SESSION CPU_PER_SESSION KERNAL 5000 13 DEVP_SESSION PASSWORD_LIFE_TIME PASSWORD DEFAULT 14 /* 15 其中: 16 • PROFILE:概要文件名稱。 17 • RESOURCE_NAME:口令或資源選項名。 18 • RESOURCE_TYPE:PASSWORD 表示口令管理選項,而KERNAL 則表示資源限 制選項。 19 • LIMIT:概要文件選項值。 20 */
用控制檯管理概要文件過程以下:
1)以獨立方式啓動控制檯,鏈接到要管理的數據庫。展開數據庫中的「安全性」項目, 而後選中其中的「概要文件」選項,如圖16-1。
2)若是要建立概要文件,在「概要文件」選項上右擊鼠標,而後在快捷菜單中選擇「創 建」,彈出如圖16-2 的對話框。進入「通常信息」選項卡,首先爲新建的概要文件命名,然 後能夠對各資源參數進行設置。在設置資源參數時,能夠直接在文本框中輸入參數值,也可 以從對應的下拉列表中選擇一個適當的值。而後進入「口令」選項卡,設置概要文件中的口 令參數,如圖16-3。
3)完成設置後,單擊「建立」按鈕。 若是要修改概要文件,在圖16-1 對話框中雙擊要修改的概要文件,而後同步驟2 同樣, 在各個選項卡中修改概要文件的口令和資源參數,最後按肯定按鈕。
圖16-1 控制檯中數據庫的概要文件
Profile 概要文件是口令限制,資源限制的命名集合。創建oracle 數據庫時,oracle 會自動 創建名爲DEFAULT 的PROFILE,初始化的DEFAULT 沒有進行任何口令和資源限制。
經過概要文件還可管理賬戶狀態並設置對用戶口令的限制(長度、失效時間等)。每一個 用戶都分配一個概要文件,並且該用戶在指定時間只屬於一個概要文件。若是用戶在您更改 用戶概要文件時已經登陸,那麼所作更改只在用戶下一次登陸後才生效。
默認概要文件用做其它全部概要文件的基礎。概要文件的限制可隱式指定(如「CPU/會 話」)、可取消限制(如「CPU/調用」),或引用默認概要文件中的任何設置(如「鏈接時間」)。 除非RESOURCE_LIMIT 初始化參數設置爲TRUE,不然不能經過概要文件強行設置 用戶的資源限制。若是RESOURCE_LIMIT 使用默認值FALSE,則忽略概要文件的限制。
對於沒有UNLIMITED TABLESPACE 系統權限的用戶,必須先給他們指定限額,以後 他們纔可在表空間中建立對象。
限額能夠是:
● 以兆字節或千字節爲單位的特定值● 無限制
將限額分配給用戶:
限額表明指定表空間中容許的空間容量。默認狀況下,用戶在任何表空間中都沒有限額。
使用如下三個選項可提供用戶的表空間限額。
● 無限制:容許用戶最大限度地使用表空間中的可用空間。
● 值:用戶可使用的空間,以千字節或兆字節爲單位。這並不保證爲用戶保留該空 間。由於,此值可能大於或小於表空間中的當前可用空間。
● UNLIMITED TABLESPACE 系統權限:此係統權限會覆蓋各個表空間限額,並向 用戶提供全部表空間(包括SYSTEM 和SYSAUX)的無限制限額。授予此權限時 必須謹慎。
注:請注意,授予RESOURCE 角色時包括授予此權限。 必定不能向用戶提供關於SYSTEM 或SYSAUX 表空間的限額。一般,只有SYS 和 SYSTEM 用戶才能在SYSTEM 或SYSAUX 表空間中建立對象。 不須要關於分配的臨時表空間或任何還原表空間的限額。
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------