oracle安全機制_第1頁
oracle安全機制_第2頁
oracle安全機制_第3頁
oracle安全機制_第4頁
oracle安全機制_第5頁
已閱讀5頁,還剩10頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1.1用戶屬性為了防止非授權用戶對數據庫進行操作,在創建數據庫用戶時,必須使用安全屬性對用戶進行限制。用戶的安全屬性包括以下幾個方面: 用戶名:在同一數據庫中,用戶名必須唯一。并且用戶名不能與角色名相同。 用戶身份認證:Oracle數據庫采用了多種用戶身份認證方式,例如數據庫身份認證、外部認證、以及全局認證。 默認表空間:用戶創建數據庫對象時,如果沒有顯示地指出該對象存儲在哪個表空間,系統會自動將該數據庫對象存儲在當前用戶的默認表空間。(表空間:Oracle數據庫在邏輯上可以劃分為一系列的區域,每一個區域稱為一個表空間。表空間是Oracle數據庫最大的邏輯存儲結構,由一系列段構成。Oracle

2、數據庫對象就是以段的方式從表空間中獲取存儲空間的。) 臨時表:保存臨時數據信息的表。 表空間配額:表空間配額限制用戶在永久空間中可以使用的存儲空間的大小。 概要文件:從會話級和調用級兩個層次限制用戶對數據庫資源的使用,同時設置用戶的口令管理策略。 設置用戶的默認角色:通過設置默認角色,可以禁止或激活用戶所具有的角色。 賬戶狀態:創建用戶的同時,可以設定用戶的初始狀態,包括用戶口令是否過期以及賬戶是否鎖定等1.2創建用戶如上圖所示,創建用戶chen 采用數據庫認證,口令為chen ,默認表空間為 users 該表空間配額為10MB ,默認臨時表空間為temp ,初始狀態不鎖定。如上圖所示,創建用

3、戶如果不授權,該用戶不能做任何操作,即便是連接數據庫。只有給用戶授予了create session 系統權限后,用戶才可以連接數據庫。使用系統管理員登陸,授予用戶chen 權限,才能使用戶chen連接數據庫。如果口令設置為過期狀態,即首次連接數據庫時需要修改口令。1.3用戶身份認證 數據庫身份認證 將數據庫的用戶名與口令都保存在數據庫內部,且口令以加密方式存儲。當用戶練級數據庫時,需要提供用戶名與口令信息,通過數據庫認證后才能登陸。 外部身份認證 用戶賬戶由oracle數據庫管理,但口令管理和身份驗證由外部服務來完成。全局身份認證 采用oracle數據庫的高級安全組件,利用LDAP目錄服務器集

4、中管理用戶信息。當用戶試圖建立與數據庫的連接時,oracle利用網絡中的目錄服務器中的信息對用戶進行身份認證。1.4修改用戶alter user user_name identifiedby passwordaccount lock|unlock1.5刪除用戶drop user username cascade;1.6 查詢用戶select username,account_status from dba_users;忘記密碼的方法:打開cmd,輸入sqlplus /nolog,回車;輸入“conn / as sysdba”;輸入“alter 

5、user sys identified by 新密碼”,注意:新密碼最好以字母開頭,否則可能出現錯誤Ora-00988。有了這個方法后,只要自己對oracle服務器有管理員權限,不記得密碼的時候就可以隨意修改密碼了。 sqlplus /nolog,conn /as sysdba 之所以能夠登錄,在于oracle登錄時的身份認證方式。 oracle在登錄時,有三種身份認證方式:操作系統身份認證、密碼文件認證、數據庫認證。而conn /as sysdba是屬于操作系統認證。

6、60;   為什么這樣說呢?你當前電腦開機時登錄的用戶,也就是進入操作系統的用戶,例如是gooooal,它在你電腦的ora_dba組中。可以在“我的電腦”單擊右鍵,找到“管理”,選擇“本地用戶和組”,發現有一個組叫“ora_dba”,雙擊它,看到成員列表中“gooooal”。    也就是在conn /as sysdba,oracle會進行操作系統驗證,發現你當前登錄的用戶就屬于ora_dba組,因此才可以登錄成功。    你可以把ora_dba組中的“gooooa

7、l”用戶刪除,再conn /as sysdba,就發現進不去了。解決用戶sys任意密碼可以登錄的問題:1、sys是Oracle的一個很特殊的用戶,它只能按sysdba和sysoper身份登入,也就是說只要按以上兩種身份登入,都是sys用戶,表面上輸入的用戶名都是無效的。任何其它用戶只能按Normal身份登入。2、sys用戶的合法認證有兩種方式:一是操作系統認證方式,二是數據庫口令認證方式。如果你登入的操作系統是Oracle用戶組,那么直接通過操作系統認證連接到數據庫,沒有必要口令來認證。所以你隨便輸入一個口令都可以的。2 資源限定與口令管理在oracle數據庫中,用戶對數據

8、庫和系統資源使用的限制以及對用戶口令的管理是通過概要文件(profile)實現的。概要文件是oracle數據庫安全策略的重要組成部分。每個數據庫必須具有一個概要文件。概要文件不是一個物理文件,而是存儲在sys模式的幾個表中的信息的集合。這些表是在創建數據庫運行sql.bsq腳本時,調用denv.bsq腳本創建的,包括profile$表、profname表、resource_map表、resource_cost表等。2.1資源限制的級別概要文件通過對一系列資源管理參數的設置,從會話級和調用級兩個級別對用戶使用資源進行限制。會話級資源限制是對用戶在一個會話過程中所能使用的資源總量進行限制,而調用級

9、資源限制是對一條SQL語句在執行過程中所能使用的資源總量進行限制。2.2 資源限制的類型通過設置通過設置概要文件中的參數值,可以從下列幾個方面限制用戶對數據庫和系統資源的使用。 CPU使用時間:在一個會話或一個調用過程中使用CPU的總量。 邏輯讀:在一個會話或一個調用過程中讀取物理磁盤和邏輯內存數據塊的總量每個用戶的并發會話數,即一個用戶最多同時開啟會話的數量。用戶連接數據庫的最長時間。私有SQL區和PL/SQL區的總量。2.3 啟用或停用資源限制與口令管理ALTER SYSTEM SET resource_limit=TRUE/FALSE;2.3.1 口令管理參

10、數介紹Oracle數據庫概要文件中用于口令管理的參數包括以下: FAILED_LOGIN_ATTEMPTS:限制用戶在登陸oracle數據庫允許失敗的次數。PASSWORD_LOCK_TIME:設定登陸失敗后,賬戶鎖定時間。PASSWORD_LIFE_TIME:設置口令的有效天數。PASSWORD_GRACE_TIME:用于設定提示口令過期的天數。PASSWORD_REUSE_TIME:指定一個用戶口令被修改后,必須經過多少天才可以重新使用該口令。PASSWORD_REUSE_MAX:指定一個口令被重新使用前,必須經過多少次修改。PASSWORD_VERIFY_FUNCTION:設置口令復雜性

11、校驗函數。2.4 創建資源限制的概要文件(上次不成功的原因,sessions寫成了session,還有per寫成了pre)1如圖:創建一個名為res_profile的概要文件,要求每個用戶最多可以創建2個并發會話,每個會話持續時間最長為60min,會話的最長連續空閑時間為20min,每個會話的私有SQL區為100KB,每個SQL語句占用CPU時間總量不超過10s.2 將概要文件指定給用戶rf Alter user rf profile res_profile 3 將資源管理激活ALTER SYSTEM SET RESOURCE_LIMIT=TRUE sc

12、ope=both; 4如下圖,用戶rf只能創建2個并發會話,創建第3個時出現錯誤:超出了限定范圍2.5 創建口令管理的概要文件SQL>create profile pwd_profile limitFailed_login_attempts 4 password_lock_time 10;2.6 將概要文件分配給用戶將該概要文件指定給普通用戶rf,用戶連續登陸四次失敗,鎖定賬戶,10天后自動解鎖。用管理員賬號解鎖用戶rf。2.7 修改概要文件例子:SQL>alter profile pwd_profile limit password_life_time 10;將用戶口令

13、設置有效期為10天例子:SQL>drop profile pwd_profile cascade;刪除概要文件。例子:SQL>select * from dba_profiles order by profile;查詢數據庫所有概要文件的參數設置。3權限管理Oracle數據庫使用權限倆控制用戶對數據庫的訪問和用戶在數據庫中所能執行的操作。用戶在數據庫中可以執行什么樣的操作,以及可以對哪些對象進行操作,完全取決于該用戶擁有的權限。控制Oracle數據庫訪問的權限類型有兩種:系統權限system privilege和對象權限Object privilege(方案對象)。系統權限向用戶提

14、供執行某一種或某一類型的數據庫操作能力,對象權限對某個特定的數據庫對象執行某種操作權限,如對表employees的插入、刪除、修改、查詢的權限等。在oracle 數據庫中給用戶授權可以采用兩種方式:1.利用grant命令直接為用戶授權。2.現將權限授予角色,然后再將角色授予用戶。3.1 系統權限分類在Oracle 11g數據庫中,有200多種數據庫權限,每種系統權限都為用戶提供了執行某一些或某一類數據庫操作的能力。查詢所有系統權限信息的命令如下:系統權限可以分為兩大類: 一類是對數據庫某一類對象的操作能力,與具體的數據庫對象無關,通常帶有ANY關鍵字。例如,CREATE ANY TABLE系統

15、權限允許用戶在任何模式中創建表;SELECT ANY TABLE系統權限允許用戶查詢數據庫中任何模式中的表和視圖。 另一類系統權限是數據庫級別的某種操作能力。例如,CREATE SESSION系統權限允許用戶登陸數據庫:ALTER SYSTEM系統權限允許用戶修改數據庫參數。使用系統權限的注意事項: Select、Insert、Update、Delete都是對象權限,它們只針對用戶自己模式下的對象,但如果加了Any關鍵字,針對的就是數據庫中所有模式下的對象了。 如果授予用戶系統權限時使用了With Admin Option子句,則被授權的用戶還可以將相應的權限授予其他用戶。 開發人員一般需要幾

16、個系統權限,其中包括Create Table、Create View和Create type系統權限,以創建支持前臺應用程序的數據庫模式。 查詢當前用戶所擁有的系統權限如下:當前登陸用戶被授予的系統權限也可以使用如下命令:查看當前用戶所擁有的對象權限:查看特定用戶所擁有的系統權限:查詢特定用戶所擁有的對象權限:如圖所示用戶rf,只有創建會話和創建概要文件的權限。3.2 系統權限的授權與回收只有DBA用戶才可以擁有ALTER DATABASE系統權限。例子:為用戶chen授予create table 、create sequence系統權限用戶獲得權限后,可以在chen模式下創建表和序列了,例如

17、:還可以授予用戶權限,并且權限具有傳遞性。 授予權限同時,在用戶后面加上 with admin option數據庫管理員可以使用revoke語句回收用戶、角色或public用戶組獲得的系統的權限。例如:回收用戶系統權限時需要注意以下幾點:1 多個管理員授予用戶同一個系統權限后,其中一個管理員回收其授予該用戶的系統權限,該用戶將不再擁有相應的系統權限。2 為了回收用戶系統權限的傳遞性,必須先回收用戶的系統權限,然后再重新授予其相應的系統權限。3如果一個用戶獲得的系統權限具有傳遞性,并且給其他用戶授權,那么該用戶系統權限被回收后,其他用戶的系統權限并不受影響。3.3 對象權限分類、授權、回收對象權

18、限是指對某個特定模式對象的操作權限。數據庫模式對象所有者擁有該對象的所有對象權限,對象權限的管理實際上是對象所有者對其他用戶操作該對象的權限管理。對象權限的授予實用grant語句,例如,查看授予用戶對象權限,并查看該權限此時用戶rf就具有對表scott.emp進行查詢、插入和更新的權限了,例如:對象權限的回收,數據庫管理員或對象所有者可以使用revoke語句回收用戶、角色或public用戶組獲得的對象權限。和系統權限類似,在進行對象權限回收時應該注意上面類似的三點。4 角色管理為了簡化數據庫權限的管理,在oracle數據庫中引入角色的概念。所謂角色就是一系列相關權限的集合。可以將要授予相同身份

19、用戶的所有權限先授予角色,然后再將角色授予用戶,這樣用戶就得到了該角色所具有的所有權限,從而簡化了權限的管理。 4.1 角色的特點和優點特點:角色名稱在數據庫中必須唯一,不能與用戶同名;角色不是模式對象,刪除創建角色的用戶對角色沒有影響;角色可以包含任何系統權限和對象權限;角色可以授予任何數據庫用戶和其他角色;授予用戶的角色可以隨時禁用或激活等。優點:減少權限管理的工作量;有效的使用權限;提高應用安全性。4.2 角色分類 預定義角色Oracle數據庫創建時由系統自動創建的一些常用的角色,這些角色已經由系統授予了相應的權限。查詢當前系統中的所有預定義角色:查詢select_catalog_rol

20、e角色所具有的系統權限。用戶自定義角色Oracle數據庫允許用戶自定義角色,并對自定義角色進行權限的授予與回收。同時允許角色進行修改、刪除、禁用或激活等操作。創建角色使用create role語句。例子如下:創建的幾個角色分別是:一般角色;角色采用數據庫認證,激活時需要口令;激活角色時采用操作系統認證、網絡認證;激活角色時采用目錄服務進行全局認證。4.3 角色權限的授予與回收創建一個角色后,如果不給角色授權,那么角色時沒有用處的。因此,在創建角色后,需要給角色授權。給角色授權實際上是給角色授予適當的系統權限、對象權限或已有角色。在數據庫運行時,可以為角色增加權限,也可以回收其權限。角色權限的授

21、予、回收的過程與用戶權限的授予、回收過程類似。權限授予如下:一個角色可以被授予另一角色,但不能授予其自身,既不能產生循環授權。修改是指使用alter role語句修改角色的認證方式如上圖所示,為角色role_emp添加認證口令,取消角色role_manager的認證口令。角色的禁用與激活Set role角色名identified by 口令,角色名identified by 口令 |allexcept 角色名,角色名|none;注:All:將使會話用戶所有被授予的角色有效。None:將禁用會話用戶所有被授予的角色。identified by 口令:啟用需要口令的角色時,必須給出口令。 刪除口令

22、。如下圖,激活角色role_manager.刪除角色,如下圖:4.4 利用角色進行權限管理 1給用戶或角色授予角色:如下圖,將預定義用戶resource,connect 授予角色role_manager,將角色授予用戶chen.2 通過修改角色權限動態修改用戶權限3 從用戶或其他角色回收角色4 設置用戶默認角色當一個角色授予某一個用戶后,該角色即成為該用戶的默認角色。對于用戶而言,用戶的默認角色處于激活狀態,而非默認角色處于禁用狀態。ALTER USER user DEFAULT ROLE role_list5 查詢角色信息查詢用戶chen所具有的角色信息上圖是查看當前用戶授予的所有角色信息。

23、5審計審計是監視和記錄用戶對數據庫所進行的操作,以供DBA進行統計和分析。利用審計可以完成下列任務: 保證用戶對自己在數據庫中的活動負責。 禁止用戶在數據庫中從事與自己職責不相符的活動。 調查數據庫中的可疑活動。 通知審計員一個未授權用戶在數據庫中的活動。 監視和收集特定數據庫活動的數據。5.1審計分類語句審計:對特定的SQL語句進行審計,不指定具體對象。權限審計:對特定的系統權限使用情況進行審計。對象審計:對特定的模式對象上執行的特定語句進行審計。網絡審計:對網絡協議錯誤與網絡層內部錯誤進行審計。5.2 審計環境設置使用數據庫審計功能,數據庫管理員需要對數據庫初始化參數AUDIT_TRAIL進行設置。AUDIT_TRAIL參數可以取值DB、DB EXTENDED、OS、XML EXTENDED、NONE。 DB:默認值,表示啟動審計功能,審計信息寫入SYS.AUD$數據字典中。 DB,EXTENDED:與DB相同,審計信息中還包括SQL語句綁定變量信息。 OS:表示啟動審計功能,審計信息寫入操作系統文件。 XML:表示啟動審計功能,審計信息寫入XML格式的操作系統文件中。 XML,EXTENDED:與XML相同,但審計信息還包含SQL語句綁定變量信

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論