導讀:近年來隨著人們生活水平的提高,很多人都開始買保險,同時也加速了吧保險業的快速發展,保險行業一般是面向社會公眾的,因此數據庫對於保險行業來說處於一個相對比較重要的地位。正是由於DB2數據庫系統具有很多的優點,所以部分保險公司就選用了DB2數據庫系統。選用Unix操作系統+DB2數據庫作為後台,前台采用C/S或B/S模式進行運作。另外通過DB2 Information Integrator對存儲在 DB2、SQL server、Oracle等異構數據庫中的數據整合,使所有數據好像集成在一個數據庫中,極大地方便了用戶對各類數據的訪問。本文主要介紹了當今主流數據庫之一——DB2數據庫的主要特點和其在安全性方面的控制方法。
在現階段,相對比較好的幾種大型數據庫有以下幾種:
1.Oracle公司的Oracle數據庫;
2.IBM公司的DB2數據庫;
3.Sybase公司的Sybase數據庫;
4.Informix公司的Informix數據庫(已被IBM收購);
5.Microsoft公司的SQL Server數據庫。
其中DB2數據庫是IBM公司的產品,它的原型是IBM在IBM360計算機上研制成功的IMS V1,是第一個也是最著名的和最為典型的層次型數據庫管理系統。我們主要討論一下IBM的DB2數據庫系統。
數據庫的安全性
驗證
數據庫安全性中最基本的概念之一就是驗證,這是一個相當簡單的過程,系統通過這個過程來證實用戶身份。用戶可以通過提供身份證明或驗證令牌來響應驗證請求。
如果用戶身份驗證成功,DB2會記下用戶的身份標識和其他相關的安全信息,如用戶組列表。用戶必須使用已經被DB2授權的授權名(authorization name)或授權標識(authid)來被DB2識別,授權名或授權標識可以與用戶標識或映射值相同。這一連接信息將在用戶連接期間保留。
授權
通過驗證的用戶將參加DB2安全性的第二層——授權。授權是DB2借以獲得有關通過驗證的DB2用戶的信息(包括用戶可以執行的數據庫操作和用戶可以訪問的數據對象)之過程。
授權可以被分為兩個不同類別:權限和特權。
1、權限
權限提供一種把特權分組的方法,並對數據庫管理器和實用程序進行更高級的維護和操作加以控制。數據庫相關權限存儲在數據庫目錄中;系統權限關系到組成員關系,對給定的實例,它存儲在數據庫管理器配置文件中。DB2有如下四個預定義的權限級別:SYSADM、SYSCTRL、SYSMAINT和DBADM。SYSADM、SYSCTRL和SYSMAINT在實例級別上操作,范圍是整個服務器。每個級別都有自己的按組分的特權和訪問規則。這些權限都是在每個實例的數據庫管理器配置文件中被定義的。DBADM授權級別鏈接到服務器實例中的特定數據庫,並自動把這一權限級別授予創建數據庫的用戶。DBADM對數據庫及其內的所有對象都擁有所有可能的按組分的特權。缺省情況下,SYSADM對包括數據庫在內的整個系統擁有所有可能的按組分的特權(SYSADM有隱含的DBADM權限)。
DB2使用不止一個縱向授權流。對於每個用戶請求,依據涉及到的對象和操作,可能會需要多次授權檢查。授權是使用DB2工具執行的。DB2系統目錄中記錄了與每個授權名有關聯的特權。對通過驗證的用戶的授權名以及該用戶所屬的組與記錄在案的屬於他們的特權進行比較。根據比較結果,DB2決定是否允許請求的訪問。
DB2安全性機制阻止TESTING用戶標識,因為它知道這個用戶沒有得到執行這樣的命令的授權。在這種情況下,TESTING顯然不是SYSADM。
2、特權
特權定義對授權名的單一許可,從而使用戶能夠修改或訪問數據庫資源。特權存儲於數據庫目錄中。雖然權限組預定義了一組可以隱性授予組成員的特權,但是特權是單獨的許可。
DB2可以利用由操作系統安全功能維護的用戶組。組允許數據庫管理員給組指派特權,這樣幫助降低數據庫系統持所有權的總成本。
通常,動態SQL和非數據庫對象授權(例如,實例級命令和實用程序)適用於組成員關系。動態SQL是非預先安排或即時生成的SQL。靜態SQL不適用於組成員關系(除PUBLIC組之外)。靜態SQL在執行之前就為DB2所知,而且DB2優化器已經生成了SQL訪問計劃並把它作為數據包存儲在目錄中。
特定用戶標識、所有用戶自動歸屬的特定組(PUBLIC)或多個組都可以被授予(或被撤消)每種特權。
訪問控制方法
DB2為了更強大的訪問控制而提供了相應的框架。訪問控制方法用於創建信息內容的子集,從而用戶可以只查看或存取與其需要相關的數據。您可以在DB2中使用許多不同的訪問控制方法。訪問控制是為您在數據庫中所進行的一切操作而存在的。DB2訪問控制提供對於在DB2中保護您的數據和提供對數據的行級別訪問非常重要的框架。
使用數據包的訪問控制。數據包是與一條或多條SQL語句有關的信息集合,這是DB2內SQL的基本訪問控制點。數據包中包括諸如優化器生成的訪問計劃和授權模型等信息。向數據庫引擎發出的任何語句都會和特定數據包有關。
在創建數據包的時候,它就被綁定到具有特定特權的數據庫。創建數據包的人一定有執行數據包中所有靜態SQL語句所需要的特權。運行數據包的用戶也一定有這個數據包的EXECUTE特權,但是他們不一定有執行數據包中包含的所有靜態語句的一對一的特權。
使用視圖的訪問控制。視圖是另一種主要限制對數據的低級(也稱為“行級”)存取的訪問控制方法。通過使用視圖,您就可以對SQL語句隱藏駐留在原始表中的敏感信息的行和列。您可以通過根據視圖授予特權使用戶可以存取信息。因為這些特權只適用於視圖,不會影響基本表,所以用戶的存取范圍僅限於視圖,而該視圖是通過創建所需表中數據的子集生成的。WITH CHECK選項甚至提供更多的安全性,因為它不會讓特定的SQL語句改變用戶在視圖中沒有特權讀取的那些行。
使用觸發器的訪問控制。通過使用觸發器,您就可以創建更復雜的安全機制,無論什麼時候只要特定事件發生,安全機制就會被激活。表的INSERT語句就是一個示例事件,它可用於觸發觸發器。此外,觸發器可以在特定事件之前或之後觸發以提供更具活力的安全性審核。如果用戶的語句沒有通過觸發器內的安全性審核,則從觸發器主體內發出的錯誤將會防止表被修改。
使用USER專用寄存器的訪問控制。DB2提供的專用寄存器名為USER,其中包含用於在當前會話連接數據庫的用戶標識。您可以在視圖中使用專用寄存器中存儲的值來針對特定的用戶定制視圖。通過使用專用寄存器,您可以使基於表的視圖因用戶而異。您也可以把這一技術應用於觸發器和SQL語句。
審核功能
DB2的審核工具使您可以維持對發生在實例內的事件的審核跟蹤。成功的數據存取嘗試監視和後續分析可以使數據訪問控制方面得到改進,並最終防止惡意或無意非授權存取數據。然後,就可以從這些記錄下來的事件中提取出一份報告供分析。
DB2數據庫的其他特點
DB2 V9對 XML 的支持
DB2 V9數據庫相對於其他數據庫管理系統來說有了大幅度的創新。實際上,DB2 9提供了對於XML的支持,不僅僅體現在XML類型的數據上,一些用關系模型難以解決的問題也可以使用XML模型得以解決。DB2 V9對XML的支持與經典的關系數據模型相比所具有的優勢是不可忽略的。
DB2 的優化
DB2在處理datawarehouse系統上的性能應該是非常優秀的,同時DB2對優化器做得相當完美,對於大部分復雜查詢可以有效地將其重寫為最優語句,並且分配合理的執行計劃。
DB2的不足
DB2有其優勢也有自己的不足。DB2在關閉機制上有一定的不足。這與DB2的設計框架相關,內存鎖的使用在提升效率的同時也對系統的優化要求提到了最高。如果用戶對數據庫的本身優化和應用程序優化做得不足,那麼DB2會容易出現鎖等待現象。
保險行業數據庫處於一個相對比較重要的地位。正是由於DB2數據庫系統具有很多的優點,所以部分保險公司就選用了DB2 數據庫系統。選用 Unix 操作系統+DB2數據庫作為後台,前台采用C/S或B/S模式進行運作。另外通過DB2 Information Integrator對存儲在DB2、SQL server、Oracle等異構數據庫中的數據整合,使所有數據好像集成在一個數據庫中,極大地方便了用戶對各類數據的訪問。
保險在當今社會似乎已經很受人們重視,開車的有車險,還有什麼手險,腳險等等,DB2數據庫在保險業界扮演著十分重要的角色,推動了保險業的發展。