




已閱讀5頁,還剩48頁未讀, 繼續免費閱讀
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Oracle的 用戶和權限 管理 本章學習目標 數據庫安全性問題一直是人們關注的焦點,數據庫數據的丟失以及數據庫被非法用戶的侵入對于任何一個應用系統來說都是至關重要的問題。確保信息安全的重要基礎在于數據庫的安全性能。 第五章 Oracle的用戶和權限管理 本章內容安排 5.1 用戶管理 5.2 權限和角色 5.3 概要文件 5.1.2 創建用戶 5.1.3 修改用戶 5.1.4 刪除用戶 5.1.1 數據庫的存取控制 5.1 用戶管理 1用戶鑒別 2用戶的表空間設置和定額 5.1.1 數據庫的存取控制 3用戶資源限制和環境文件 4用戶環境文件 1. 用戶鑒別 為了防止非授權的數據庫用戶的使用 , Oracle提供三種確認方法: 操作系統確認 、 Oracle數據庫確認網絡服務確認 。 由操作系統鑒定用戶的優點是: 1) 用戶能更快 , 更方便地聯入數據庫 。 2) 通過操作系統對用戶身份確認進行集中控制:如果操作系統與數據庫用戶信息一致 , 那么 Oracle無須存儲和管理用戶名以及密碼 。 3) 用戶進入數據庫和操作系統審計信息一致 。 2 用戶的表空間設置和定額 關于表空間的使用有幾種設置選擇: 用戶的缺省表空間 用戶的臨時表空間 數據庫表空間的空間使用定額 3. 用戶資源限制和環境文件 用戶可用的各種系統資源總量的限制是用戶安全域的部分 。利用顯式地設置資源限制 , 安全管理員可防止用戶無控制地消耗寶貴的系統資源 。 資源限制是由環境文件管理 。 一個環境文件是命名的一組賦給用戶的資源限制 。 另外 Oracle為安全管理員在數據庫提供是否對環境文件資源限制的選擇 。 Oracle可限制幾種類型的系統資源的使用 , 每種資源可在會話級 、 調用級或兩者上控制 。 在會話級:每一次用戶連接到一數據庫,建立一會話。每一個會話在執行 SQL語句的計算機上耗費 CPU時間和內存量進行限制。 在調用級:在 SQL語句執行時,處理該語句有幾步,為了防止過多地調用系統, Oracle在調用級可設置幾種資源限制。 有下列資源限制: ( 1)為了防止無控制地使用 CPU時間, Oracle可限制每次 Oracle調用的 CPU時間和在一次會話期間 Oracle調用所使用的 CPU的時間,以 0.01秒為單位。 ( 2)為了防止過多的 I/O, Oracle可限制每次調用和每次會話的邏輯數據塊讀的數目。 ( 3) Oracle在會話級還提供其它幾種資源限制。 每個用戶的并行會話數的限制。 會話空閑時間的限制,如果一次會話的 Oracle調用之間時間達到該空閑時間,當前事務被回滾,會話被中止,會話資源返回給系統。 每次會話可消逝時間的限制,如果一次會話期間超過可消逝時間的限制,當前事務被回滾,會話被刪除,該會話的資源被釋放。 每次會話的專用 SGA空間量的限制。 4 用戶環境文件 用戶環境文件是指定資源限制的命名集 , 可賦給 Oracle數據庫的有效的用戶 。 利用用戶環境文件可容易地管理資源限制 。 在許多情況中決定用戶的環境文件的合適資源限制的最好的方法是收集每種資源使用的歷史信息 。 5.1.2 創建用戶 使用 CREATE USER語句可以創建一個新的數據庫用戶,執行該語句的用戶必須具有 CREATE USER系統權限。 在創建用戶時必須指定用戶的認證方式。一般會通過Oracle數據庫對用戶身份進行驗證,即采用數據庫認證方式。在這種情況下,創建用戶時必須為新用戶指定一個口令,口令以加密方式保存在數據庫中。當用戶連接數據庫時,Oracle從數據庫中提取口令來對用戶的身份進行驗證。 使用 IDENTIFIED BY子句為用戶設置口令 , 這時用戶將通過數據庫來進行身份認證 。 如果要通過操作系統來對用戶進行身份認證 , 則必須使用 IDENTIFIED EXTERNAL BY子句 。 使用 DEFAULT TABLESPACE子句為用戶指定默認表空間 。 如果沒有指定默認表空間 , Oracle會把 SYSTEM表空間作為用戶的默認表空間 。 為用戶指定了默認表空間之后 , 還必須使用 QUOTA子句來為用戶在默認表空間中分配的空間配額 。 此外 , 常用的一些子句有: TEMPORARY TABLESPACE子句:為用戶指定臨時表空間 。 PROFILE子句:為用戶指定一個概要文件 。 如果沒有為用戶顯式地指定概要文件 , Oracle將自動為他指定 DEFAULT概要文件 。 DEFAULT ROLE子句:為用戶指定默認的角色 。 PASSWORD EXPIRE子句:設置用戶口令的初始狀態為過期 。 ACCOUNT LOCK子句:設置用戶賬戶的初始狀態為鎖定 , 缺省為: ACCOUNT UNLOCK。 在建立新用戶之后 , 通常會需要使用 GRANT語句為他授予 CREATE SESSION系統權限 , 使他具有連接到數據庫中的能力 。 或為新用戶直接授予 Oracle中預定義的 CONNECT角色 。 5.1.3 修改用戶 在創建用戶之后,可以使用 ALTER USER語句對用戶進行修改,執行該語句的用戶必須具有 ALTER USER系統權限。 例如:利用下面的語句可以修改用戶 chenjie的認證方式、默認表空間、空間配額: ALTER USER chenjie IDENTIFIED BY chenjie_pw QUATA 10M ON mbl_tbs; ALTER USER語句最常用的情況是用來修改用戶自己 的 口 令 , 任 何 用 戶 都 可 以 使 用 ALTER USER IDENTIFIED BY語句來修改自己的口令 , 而不需要具有任何其他權限 。 但是如果要修改其他用戶的口令 , 則必須具有 ALTER USER系統權限 。 DBA還會經常使用 ALTER USER語句鎖定或解鎖用戶賬戶 。 例如: ALTER USER chenjie ACCOUNT LOCK; ALTER USER chenjie ACCOUNT UNLOCK; 5.1.4 刪除用戶 使用 DROP USER語句可以刪除已有的用戶,執行該語句的用戶必須具有 DROP USER系統權限。 如果用戶當前正連接到數據庫中,則不能刪除這個用戶。要刪除已連接的用戶,首先必須使用ALTER SYSTEMKILL SESSION 語句終止他的會話,然后再使用 DROP USER語句將其刪除。 如果要刪除的用戶模式中包含有模式對象,必須在 DROP USER子句中指定 CASCADE關鍵字,否則Oracle將返回錯誤信息。例如:利用下面的語句將刪除用戶 chenjie,并且同時刪除他所擁有的所有表、索引等模式對象: DROP USER chenjie CASCADE; 5.2.2 創建角色 5.2.3 授予權限或角色 5.2.4 回收權限或角色 5.2.1 基本概念 5.2 權限和角色 5.2.5 激活和禁用角色 1權限 2角色 5.2.1 基本概念 1.權限 權限 是執行一種特殊類型的 SQL語句或存取另一用戶的對象的權力 。 有兩類權限:系統權限和對象權限 。 1) 系統權限 :是執行一處特殊動作或者在對象類型上執行一種特殊動作的權利 。 系統權限可授權給用戶或角色 , 一般 , 系統權限只授予管理人員和應用開發人員 , 終端用戶不需要這些相關功能 。 2) 對象權限 :在指定的表 、 視圖 、 序列 、 過程 、 函數或包上執行特殊動作的權利 。 2.角色 為相關權限的命名組 , 可授權給用戶和角色 。 數據庫角色包含下列功能: ( 1) 一個角色可授予系統權限或對象權限 。 ( 2) 一個角色可授權給其它角色 , 但不能循環授權 。 ( 3) 任何角色可授權給任何數據庫用戶 。 ( 4) 授權給用戶的每一角色可以是可用的或者不可用的 。 一個用戶的安全域僅包含當前對該用戶可用的全部角色的權限 。 ( 5) 一個間接授權角色對用戶可顯式地使其可用或不可用 。 在一個數據庫中 , 每一個角色名必須唯一 。 角色名與用戶不同 , 角色不包含在任何模式中 , 所以建立角色的用戶被刪除時不影響該角色 。 一般 , 建立角色服務有兩個目的:為數據庫應用管理權限和為用戶組管理權限 。 相應的角色稱為應用角色和用戶角色 。 應用角色是授予的運行數據庫應用所需的全部權限 。 用戶角色是為具有公開權限需求的一組數據庫用戶而建立的 。 用戶權限管理是受應用角色或權限授權給用戶角色所控制 , 然后將用戶角色授權給相應的用戶 。 ORACEL利用角色更容易地進行權限管理 。 有下列優點: ( 1) 減少權限管理 , 不要顯式地將同一權限組授權給幾個用戶 , 只需將這權限組授給角色 , 然后將角色授權給每一用戶 。 ( 2) 動態權限管理 , 如果一組權限需要改變 , 只需修改角色的權限 , 所有授給該角色的全部用戶的安全域將自動地反映對角色所作的修改 。 ( 3) 權限的選擇可用性 , 授權給用戶的角色可選擇地使其可用或不可用 。 ( 4) 應用可知性 , 當用戶經用戶名執行應用時 , 該數據庫應用可查詢字典 , 將自動地選擇使角色可用或不可用 。 ( 5) 應用安全性 , 角色使用可由口令保護 , 應用可提供正確的口令使用角色 , 如不知其口令 , 不能使用角色 。 使用 CREATE ROLE語句可以創建一個新的角色,執行該語句的用戶必須具有 CREATE ROLE系統權限。 在角色剛剛創建時,它并不具有任何權限,這時的角色是沒有用處的。因此,在創建角色之后,通常會立即為它授予權限。例如:利用下面的語句創建了一個名為 OPT_ROLE的角色,并且為它授予了一些對象權限和系統權限: CREATE ROLE OPT_ROLE; GRANT SELECT ON sal_history TO OPT_ROLE; GRANT INSERT,UPDATE ON mount_entry TO OPT_ROLE; GRANT CREATE VIEW TO OPT_ROLE; 5.2.2 創建角色 在創建角色時必須為角色命名,新建角色的名稱不能與任何數據庫用戶或其他角色的名稱相同。 與用戶類似,角色也需要進行認證。在執行 CREATE ROLE語句創建角色時,默認地將使用 NOT IDENTIFIED子句,即在激活和禁用角色時不需要進行認證。如果需要確保角色的安全性,可以在創建角色時使用 IDENTIFIED子句來設置角色的認證方式。與用戶類似,角色也可以使用兩種方式進行認證。 使用 ALTER ROLE語句可以改變角色的口令或認證方式。例如:利用下面的語句來修改 OPT_ROLE角色的口令(假設角色使用的是數據庫認證方式): ALTER ROLE OPT_ROLE IDENTIFIED BY accts*new; 1授予系統權限 2授予對象權限 5.2.3 授予權限或角色 3授予角色 1.授予系統權限 在 GRANT關鍵字之后指定系統權限的名稱 , 然后在 TO關鍵字之后指定接受權限的用戶名 , 即可將系統權限授予指定的用戶 。 例如:利用下面的語句可以相關權限授予用戶 chenjie: GRANT CREATE USER,ALTER USER,DROP USER TO chenjie WITH ADMIN OPTION; 2 授予對象權限 Oracle對象權限 指用戶在指定的表上進行特殊操作的權利 。 在 GRANT關鍵字之后指定對象權限的名稱 , 然后在 ON關鍵字后指定對象名稱 , 最后在 TO關鍵字之后指定接受權限的用戶名 , 即可將指定對象的對象權限授予指定的用戶 。 使用一條 GRANT語句可以同時授予用戶多個對象權限 ,各個權限名稱之間用逗號分隔 。 有三類對象權限可以授予表或視圖中的字段 , 它們是分別是 INSERT, UPDATE和 REFERENCES對象權限 。 例如:利用下面的語句可以將 CUSTOMER表的 SELECT和INSERT, UPDATE對象權限授予用戶 chenqian: GRANT SELECT,INSERT(CUSTOMER_ID,CUSTOMER_name), UPDATE(desc) ON CUSTOMER TO chenqian WITH ADMIN OPTION; 在授予對象權限時 , 可以使用一次關鍵字 ALL或 ALL PRIVILEGES將某個對象的所有對象權限全部授予指定的用戶 。 3 授予角色 在 GRANT關鍵字之后指定角色的名稱 , 然后在 TO關鍵字之后指定用戶名 , 即可將角色授予指定的用戶 。 Oracle數據庫系統預先定義了 CONNECT、 RESOURCE、 DBA、 EXP_FULL_DATABASE 、 IMP_FULL_DATABASE 五個角色 。 CONNECT 具 有 創 建 表 、 視圖 、 序列等權限;RESOURCE具有創建過程 、 觸發器 、 表 、 序列等權限 、DBA 具 有 全 部 系 統 權 限 ; EXP_FULL_DATABASE 、 IMP_FULL_DATABASE具有卸出與裝入數據庫的權限 。 通過查詢 sys.dba_sys_privs可以了解每種角色擁有的權限 。 例如:利用下面的語句可以將 DBA角色授予用戶 chenjie: GRANT DBA TO chenjie WITH GRANT OPTION; 在同一條 GRANT語句中 , 可以同時為用戶授予系統權限和角色 。 如果在為某個用戶授予角色時使用了 WITH ADMIN OPTION選項 , 該用戶將具有如下權利: ( 1) 將這個角色授予其他用戶 , 使用或不使用 WITH ADMIN OPTION選項 。 ( 2) 從任何具有這個角色的用戶那里回收該角色 。 ( 3) 刪除或修改這個角色 。 注意: 不能使用一條 GRANT語句同時為用戶授予對象權限和角色 。 使用 REVOKE語句可以回收己經授予用戶(或角色)的系統權限、對象權限與角色,執行回收權限操作的用戶同時必須具有授予相同權限的能力。 例如:利用下面的語句可以回收已經授予用戶 chenqian的 SELECT和 UPDATE對象權限: REVOKE SELECT,UPDATE ON CUSTOMER FROM chenqian; 利用下面的語句可以回收已經授予用戶 chenjie的 CREATE ANY TABLE系統權限: REVOKE CREATE ANY TABLE FROM chenjie; 利用下面的語句可以回收己經授予用戶 chenjie的 OPT_ROLE角色: REVOKE OPT_ROLE FROM chenjie; 5.2.4 回收權限或角色 在回收對象權限時,可以使用關鍵字 ALL或 ALL PRIVILEGES將某個對象的所有對象權限全部回收。 例如:利用下面的語句可以回收己經授予用戶 chenqian的CUSTOMER表的所有對象權限: REVOKE ALL ON CUSTOMER FROM chenjie; 一個用戶可以同時被授予多個角色,但是并不是所有的這些角色都同時起作用。角色可以處于兩種狀態:激活狀態或禁用狀態,禁用狀態的角色所具有權限并不生效。 當用戶連接到數據庫中時,只有他的默認角色( Default Role)處于激活狀態。在 ALTER USER角色中使用 DEFAULT ROLE子句可以改變用戶的默認角色。 例如:如果要將用戶所擁有的一個角色設置為默認角色,可以使用下面的語句: ALTER USER chenjie DEFAULT ROLE connect,OPT_ROLE; 5.2.5 激活和禁用角色 在用戶會話的過程中,還可以使用 SET ROLE語句來激活或禁用他所擁有的角色。用戶所同時激活的最大角色數目由初始化參數 ENABLED ROLES決定(默認值為 30)。如果角色在創建時使用了 IDENTIFIED BY子句,則在使用 SET ROLE語句激活角色時也需要在 IDENTIFIED BY子句中提供口令。 如果要激活用戶所擁有的所有角色,可以使用下面的語句: SET ROLE ALL; 5.3.2 激活和禁用資源限制 5.3.3 管理概要文件 5.3.1 概要文件中的參數 5.3 概要文件 1資源限制參數 2口令策略參數 5.3.1 概要文件中的參數 1 資源限制參數 資源參數的值可以是一個整數 , 也可以是 UNLIMITED或 DEFAULT即使用默認概要文件中的參數設置 。 大部分資源限制都可以在兩個級別進行:會話級或調用級 。 會話級資源限制是對用戶在一個會話過程中所能使用的資源進行的限制 , 而調用級資源限制是對一條 SQL語句在執行過程中所能使用的資源進行的限制 。 當會話或一條 SQL語句占用的資源超過概要文件中的限制時 ,Oracle將中止并回退當前的操作 , 然后向用戶返回錯誤信息 。 這時用戶仍然有機會提交或回退當前的事務 。 如果受到的是會話級限制 , 在提交或回退事務后用戶會話被中止 ( 斷開連接 ) , 但是如果受到的是調用級限制 , 用戶會話還能夠繼續進行 , 只是當前執行的 SQL語句被終止 。 以下為概要文件中使用的各種資源參數: SESSIONS_PER_USER:該參數限制每個用戶所允許建立的最大并發會話數目 。 達到這個限制時 , 用戶不能再建立任何數據庫連接 。 CPU_PER_SESSION:該參數限制每個會話所能使用的 CPU時間 。 CPU_PER_CALL:該參數限制每條 SQL語句所能使用的 CPU時間 。 LAGICAL_READS_PER_SESSION:該參數限制每個會話所能讀取的數據塊數目 , 包括從內存中讀取的數據塊和從硬盤中讀取的數據塊 。 LAGICAL_READS_PER_CALL:該參數限制每條 SQL語句所能讀取的數據塊數目 , 包括從內存中讀取的數據塊和從硬盤中讀取的數據塊 。 CONNECT_TIME:該參數限制每個會話能連接到數據庫的最長時間 。 當連接時間達到該參數的限制時 , .用戶會話將自動斷開 。 IDLE_TIME:該參數限制每個會話所允許的最大連續空閑時間 。如果一個會話持續的空閑時間達到該參數的限制 , 該會話將自動斷開 。 COMPOSITE_LIMIT:該參數用于設置 “ 組合資源限制 ” 。 PRIVATE_SGA:在共享服務器操作模式下 , 執行 SQL語句和PL/SQL語句時 , Oracle將在 SGA中創建私有 SQL區 。 該參數限制在 SGA中為每個會話所能分配的最大私有 SQL區大小 。 在專用服務器操作模式下 , 該參數不起作用 。 2 口令策略參數 使用概要文件可以實現如下三種口令策略: ( 1) 賬戶的鎖定 賬戶鎖定策略是指用戶在連續輸入多少次錯誤的口令后 ,將由 Oracle自動鎖定用戶的賬戶 , 并且可以設置賬戶鎖定的時間 。 ( 2) 口令的過期時間 口令過期策略用于強制用戶定期修改自己的口令 。 當口令過期后 , Oracle將隨時提醒用戶修改口令 。 如果用戶仍然不修改自己的口令 , Oracle將使他的口令失效 。 ( 3) 口令的復雜度 在概要文件中可以通過指定的函數來強制用戶的口令必須具有一定的復雜度 。 以下為在概要文件中使用的各種口令參數: FAILED_LOGIN_ATTEMPTS:該參數指定允許的輸入錯誤口令的次數 , 超過該次數后用戶賬戶被自動鎖定 。 PASSWORD_LOCK_TIME:該參數指定用戶賬戶由于口令輸入錯誤而被鎖定后 , 持續保持鎖定狀態的時間 。 PASSWORD_LIFE_TIME:該參數指定同一個用戶口令可以持續使用的時間 。 如果在達到這個限制之前用戶還沒有更換另外一個口令 , 他的口令將失效 。 這時必須由 DBA為他重新設置新的口令 。 PASSWORD_GRACE_TIME:該參數指定用戶口令過期的時間 。 如果在達到這個限制之前用戶還沒有更換另外一個口令 ,Oracle將對他提出警告 。 在口令過期之后 , 用戶在達到PASSWORD_LIFE_TIME參數的限制之前有機會主動修改口令 。 PASSWORD_REUSE_TIME:該參數指定用戶在能夠重復使用一個口令前必須經過的時間 。 PASSWORD_REUSE_MAX:該參數指定用戶在能夠重復使用一 個 口 令 之 前 必 須 對 口 令 進 行 修 改 的 次 數 。PASSWORD_REUSE_TIME參數和 PASSWORD_REUSE_MAX參數只能設置一個 , 而另一個參數必須指定為 UNLIMITED。 PASSWORD_VERIFY_FUNCTION:該參數指定用于驗證用戶口令復雜度的函數 。 Oracle通過一個內置腳本提供了一個默認函數用于驗證用戶口令的復雜度 , 所有指定時間的口令參數都以天為單位 。 修改數據庫的資源限制狀態有兩種方式: 在數據庫啟動之前,可以通過設置初始化參數RESOURCE_LIMIT來決定資源限制的狀態。如果 RESOURCE LIMIT參數設置為 TRUE,啟動數據庫后資源限制將處于激活狀態;反之如果 RESOURCE LIMIT參數設置為 FALSE,啟動數據庫后資源限制將處于禁用狀態。默認情況下,RESOURCE_LIMIT參數為 FALSE。 在數據庫啟動之后(處于打開狀態),可以使用 ALTER SYSTEM語句來改變資源限制的狀態
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 精準醫療與數據挖掘技術課件
- 科研興趣面試題及答案
- 2024年考試重點復習試題及答案
- 《全面安全防護教學資料》課件
- 皮革加工考試題及答案
- 地質勘查面試題及答案
- 廣告設計的理念與應用解析 試題及答案
- 紡織品設計師考試備考心得體會試題及答案
- 廣告設計師數據可視化考題及答案
- 工業涂料市場趨勢與發展前景解析
- 2025年生豬屠宰獸醫衛生檢疫人員考試題(附答案)
- 2025年中國鐵路信號電源屏數據監測報告
- 2024北京海淀區高一(下)期末英語試題和答案
- 警察知識小學講課
- 2025年乙肝知識試題及答案
- 投標資格報告范文
- 資產證券化風險控制-深度研究
- 企業品牌建設
- 核心素養導向下的小學數學結構化教學實踐研究
- 圍手術期感染控制與處理流程
- 護理查對制度2025年全新改版2篇
評論
0/150
提交評論