国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle用戶特權管理與審計(圖)

2024-08-29 13:37:54
字體:
來源:轉載
供稿:網友

  1 引言
  信息對于取得成功是非常重要的,但是假如信息被破壞或被錯誤利用,就會給成功帶來威脅。Oracle提供了廣泛的安全特性以保護用戶的信息免受未經授權的訪問及有意或無意的破壞。 這種安全性是在用戶到用戶,權限到權限的基礎上通過授予或撤消權限來提供的,并且是附加于(獨立于)用戶的計算機系統本身已有的安全機制之上。在實現了權限分配的基礎上,我們又面臨著實時跟蹤被使用的系統資源與數據庫資源,監測用戶對數據庫的行為的問題,這就是大型數據庫治理系統所必需的審計功能。在這里,我們將共同探討Orale用戶權限分配以及審計的實現思想與方法。
  
  2 用戶治理模式
  DBMS:DataBase Management System,數據庫治理系統,對數據進行集中統一的治理和操縱。現在主要的DBMS包括:Oracle SQL Server,Sybase Adaptive Server 11,Microsoft SQL Server 6.x,7.x等,在這些DBMS中,都有自己完整的用戶治理模式,一般都以下列方式進行:
  
  登錄用戶:DBO,主要用來提供連接到數據庫服務的;
  
  角色用戶:將登錄用戶劃分為某些組,這些組擁有各種不同的數據庫操作權限,而一個登錄用戶可以扮演不同的角色;
  
  DBMS提供了這些用戶治理的基本方式,并各自對表、視圖、過程、觸發器等有各自的審計及治理的方法。
  
  在實際的應用中,假如實際情況答應,可以對實際的所有用戶建立一個登錄用戶(帳號),并對所有的帳號進行嚴密的權限治理。但是,假如用戶的數量是不固定的,而且可能有上百個,那治理的復雜程度及難度就可想而知了。
  
  這就是所謂的單用戶-多用戶模式。它是指數據庫的登錄用戶模式,所有應用都以統一的用戶登錄,該用戶擁有所有表、視圖、過程、函數等的所有操作權限,而這些對象都被DBO所創建和擁有,可以將這些用戶稱為應用用戶(存放在某表中);而登錄到數據庫的這個用戶即為模式用戶。實際上,為了防止系統外數據登錄,可增加一個聯接用戶,該用戶只能讀取一張表,該表記錄了模式用戶的登錄參數(具體部分可以加密存放);
  
  這種單-多用戶方式在大型的MIS系統中,由于其實現簡單,思路清楚,所以應用是相當多的,其優點是明顯的:
  
  (1) 設置簡單,非凡是授權,可以比較輕松地實現;
  
  (2) 治理簡單,只要維護一個模式用戶就可以了;
  
  (3) 對開發人員是透明的,即開發用戶以DBO方式登錄就可以了;
  
  3 設計思想
  當前比較可行的方法的要點是:
  
  (1) 所有的實體(表、視圖等等)都由一個登錄用戶建立(DBO)、但是該用戶不擁有連接及操作這些實體的權限(Insert,Delete,Update等等);
  
  (2) 對所有的實際用戶進行分類,歸納為幾個具體的角色(實際角色);
  
  (3) 一種實際角色對應一個登錄用戶,建立帳號系統,進行角色分配、權限設置;
  
  (4) 在application中,某用戶連接時,根據所扮演的實際角色,以對應的登錄用戶登錄;
  
  (5) 根據對應表中對該用戶的可用模塊(功能),進行適當處理,使用戶只在定制的、答應的范圍內進行功能操作及數據庫操作。
  
  (6)建立審計所需要的表,用于具體記載要跟蹤的數據庫行為用戶的機器屬性、所擁有的權限與角色、每一次訪問數據庫的起始和截止時間、表級訪問對象、數據操作方式、數據操作對象及具體的動作、操作前后的記錄值等等。
  
  根據以上幾點,在一個具體的應用中,涉及到的開發工作包括:
  
  表設計:
  (1) 實際角色(組)分析;
  
  (2) 建立應用用戶帳戶表,該表記錄了該用戶所屬的組,建立用戶組表;
  
  (3) 建立一個通用連接用戶(只能檢索用戶帳戶表),所有的應用用戶初始都以該用戶連接數據庫,然后檢索根據實際登錄的用戶及用戶所屬組,以該組對應的登錄用戶進行連接;
  
  (4) 建立模塊(功能)表,建立用戶、用戶組與該表的對應表,即某用戶到底能夠進行什么樣的操作。
  
  權限分配功能設計:
  
  (1) 建立模塊(功能)治理器,治理所有可用模塊的相關信息;
  
  (2) 建立用戶,用戶組權限治理器,治理某用戶(組)能夠使用的功能。
  
  用戶啟動應用錄時,將按照以下過程進行:
  
  (1) 所有用戶都以固定的連接用戶進行初始連接;
  
  (2) 用戶輸入自己的代碼及口令,根據帳戶表確認該用戶;
  
  (3) 得到該用戶所屬的組(即可以連接到數據庫的登錄用戶名稱)等信息;
  
  (4) 重新連接到數據庫,分配角色;
  
  (5) 根據角色,進行動態數據分片;
  
  (6) 檢索該用戶所屬組及該用戶可用的模塊信息及布置,調整菜單或界面;
  
  (7) 打開主窗口,結束。
  
  審計功能設計:
  一個成熟的審計系統,需要解決很多問題,比如確定審計區域、如何記錄審計跟蹤文件、收集什么樣的審計信息、確定多少系統資源和人力資源專門用于審計功能、性能降低多少是最大可承受限度、誰負責監視審計結果、數據庫被破壞后應采取什么行為、如何執行數據庫毀壞報告、使用什么方法來修復毀壞了的數據、多長時間重新審核一次審計方法等等。
我們在這里只是簡單談談如何確定審計區域以及收集和治理審計信息。
  
  根據審計區域來劃分,審計主要分為語句審計、特權審計、模式對象審計和資源審計。
  
  語句審計是指監視一個或者多個特定用戶或者所有用戶提交的SQL語句;特權審計是指監視一個或者多個特定用戶或者所有用戶使用的系統特權;模式對象審計是指監視一個模式里在一個或者多個對象上發生的行為;資源審計是指監視分配給每個用戶的資源數量。我們這里談的主要是模式對象審計。
  
  (1) 模式對象審計的整體思想
  
  實現審計功能,可以選用Oracle數據庫中Sys模式下的三個審計表做審計支持,分別是AUD$(記錄審計信息)、AUDIT$()和AUDIT_ACTIONS(存儲審計跟蹤行為類型代碼的描述),雖然這種Oracle審計可以捕捉誰做了更改和什么時候做了更改,但捕捉數據更改是非常困難的和費時的。所以我們采用的是人工創建審計信息表,并且通過建立觸發器的方式記錄數據更改情況。
  
  (2) 根據需要,建立審計模塊(功能)治理器(審計信息表),治理所有可用審計模塊的相關信息,包括用戶ID和用戶名、會話標識符、被訪問的模式對象名(表、存儲過程、索引、觸發器等)、被執行或者企圖執行的操作、操作的完全代碼、時間和日期戳以及使用的系統特權等等。
  
  審計信息表的結構是:
  
  "修改表名" (20),"動作種類" (10),"舊身份號" (18),"舊姓名" (40), "新身份號"(18),"新姓名"(40),"機器名"(20),"用戶"(20),"客戶信息" (50),"時間"DATE,"修改字段名1"(20),"字段名舊值1"(50),"字段名新值1"(50),"修改字段名2" (20),"字段名舊值2" (50), "字段名新值2" (50),"會話號"NUMBER(*),"序號" NUMBER(*)。
  
  根據實際需要,可以調整賡續字段的數量。
  
  (3) 由具有DBA權限的數據庫治理員使用和維護審計程序,并負責維護審計信息及定期歸檔,以及在數據庫碰到災難時的數據庫恢復。
  
  4 具體實現中的幾個難點
  (1) 由登錄用戶創建角色用戶
  
  圖1顯示的是由登錄用戶GBASE創建角色用戶GBSJ的界面,在這里還可以控制GBSJ用戶對所有數據庫表的讀寫權限,同時可以詢問是否將表結構及數據復制到當前用戶。
  
   Oracle用戶特權治理與審計(圖)(圖一)
  2) 數據分片技術
  
  首先要說明的是什么是數據分片。在ORACLE的用戶權限分配中,只提供對表、函數、同義詞、視圖、包等的Insert,Update,Select,Delete,Execute等操作,并未提供字段級的權限設置(實際上,對大型數據庫進行字段級的權限設置雖然帶來了安全性方面的好處,但對于性能的存在一定的影響),因此,對于大型MIS系統,進行數據的分片是在所難免的。
  
  一般地,一個典型的MIS數據庫平臺設計是這樣的,如下圖。
  
   Oracle用戶特權治理與審計(圖)(圖二)
  
  對用戶權限的分配是通過對ORACLE臨時系統表來實現的:
  
  ① 在需要分片的表(CUSTOMER)中建立相關字段,如SGRANT_NUM number(20)及所屬部門 SUNIT_ID varchar(10),
  
  ② 對該表創建動態視圖 CUSTOMER_PV
  
  select * from CUSTOMER A where CD_WAREHOUSE.SUNIT_ID is null or exists (select * from CUSTOMER B where A.SUNIT_ID = B.SUNIT_ID
  
  and ( B.SGRANT_NUM >= TO_NUMBER(SUBSTR(USERENV('CLIENT_INFO'), 1, 10))
  
  and ( B.SGRANT_NUM <= TO_NUMBER(SUBSTR(USERENV('CLIENT_INFO'),11,10))))
  
  ③ 在用戶登錄系統時修改用戶環境 client_info 中的分片號;
  
  ④ 這樣,對設計者,不存在分片問題,對最終用戶,可定義該用戶的組織分片號來約束該用戶能夠存取的數據。
  
  原理圖如圖。
  
   Oracle用戶特權治理與審計(圖)(圖三)
  
  這樣進行數據分片的優點是:
  
  ① 由服務器自動完成,對設計無任何影響;
  
  ② 速度快,對巨量數據無明顯影響;
  
  缺點是:
  
  ① 只能根據組織(或其他)進行縱向分片,不夠靈活;
  
  ② 技術實現復雜,主表的更改將直接影響視圖(需要重新生成);
  
  ③

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 威宁| 屏边| 民乐县| 佛冈县| 玉龙| 宁海县| 玉溪市| 县级市| 和林格尔县| 平定县| 海安县| 彭泽县| 松阳县| 新余市| 视频| 神木县| 沽源县| 格尔木市| 江北区| 开原市| 子洲县| 威宁| 北票市| 葫芦岛市| 泰顺县| 五原县| 云和县| 鄂伦春自治旗| 兴业县| 肇庆市| 湘潭县| 秭归县| 上犹县| 屏边| 赣州市| 平乐县| 桐乡市| 松阳县| 巴彦县| 阜阳市| 沾化县|