DB2 UDB 安全性外掛程式概述
來源:互聯網
上載者:User
關鍵字
安全
DB2
安全性外掛程式是動態可裝載庫,當 DB2 UDB 進行身份驗證或者從組成員中查找某個使用者的時候,便調用這些庫。 在 8.2 版之前,這些操作是由 DB2 UDB 之外的設施管理的,例如作業系統、域管理器或 Kerberos 安全性系統。 圖 1 提供的場景說明了在 8.2 版之前 DB2 UDB 安全性的工作原理。 下一節將描述 8.2 版中發生的變化。 圖 1. 安全性場景498)this.width=498;' onmousewheel = 'javascript:return big(this)' height=236 alt=安全性場景 src="/files/uploadimg/ 20061213/1741050.gif" width=550> 圖 1 說明了 4 個安全性場景:客戶機系統通過伺服器系統連接到資料庫時的安全性考慮。 在圖 1 左側,一個使用者在 DB2 客戶機系統的命令列處理常式(CLP)視窗中發出了語句 connect to mydb user raul using raulpsw,以連接到位於 DB2 資料庫伺服器 Aries 上的資料庫 mydb。 DB2 客戶機與伺服器通信,協商採用何種身份驗證方法。 為簡單起見,我們假設客戶機使用伺服器返回的身份驗證方法。 在圖中,AUTHENTICATION 被設置為 SERVER。 這意味著,伺服器(I)上的作業系統將通過檢查提供的使用者 ID 和密碼是否與存儲在作業系統安全性資料庫中的值匹配,來進行身份驗證。 一旦使用者通過身份驗證,DB2 將從作業系統獲得組成員資訊。 從此以後,DB2 不再在以後的檢查中使用使用者 ID 或密碼;相反,DB2 將使用授權 ID(authID)。 通常,authID 是使用者 ID 的大寫版本。 連接到資料庫之後執行 SQL 語句時的安全性考慮。 圖 1 的左下部分展示了一條 SELECT 語句,該語句是在以 authID RAUL 連接到資料庫 mydb 的情況下發出的。 在這個例子中,內部的 DB2 安全性設施審核 DB2 編目表,以確認 authID RAUL 被授予對表 KEVIN. TABLE1 執行 SELECT 操作的許可權,以此來執行授權(authorization) 檢查。 如果 authID RAUL 和 PUBLIC 沒有被授予這種許可權,DB2 將檢查該使用者是否為幾個特殊的組(例如 SYSADM、SYSCTRL、SYSMAINT 或 SYSMON)的成員。 對於這些組中的每一個組,都有資料庫管理器配置(dbm cfg)參數,可以將這些參數設置為一個作業系統組的值。 在連接時,DB2 從作業系統中獲取使用者的組資訊,並緩存在記憶體中。 然後,DB2 審核這個緩存的資料(II),以檢查 authID RAUL 是否為這些組中某個組的成員。 例如,如果 authID 是 SYSADM 組的成員,那麼 SELECT 可以繼續,否則將返回一條錯誤訊息(SQLCODE -551)。 在客戶機實施安全性時的安全性考慮。 在圖 1 中,如果 AUTHENTICATION 被設置為 CLIENT,那麼客戶機上的作業系統將實施身份驗證(III)。 對於 SELECT 語句的授權檢查將如前面所說的一樣進行:DB2 從資料庫的 DB2 編目表中檢驗 authID RAUL 是否有對 KEVIN. TABLE1 表的 SELECT 許可權。 如果 authID RAUL 和 PUBLIC 沒有該許可權,將進行組成員檢查。 在連接時,DB2 從客戶機獲得組成員資訊,並緩存在伺服器上。 發出實例級命令時的安全性考慮。 在圖 1 中的伺服器上,DB2 實例擁有者 db2inst1 發出命令 db2stop。 DB2 檢查當前登錄進來的使用者是否屬於 SYSADM_GROUP、SYSCTRL_GROUP 或 SYSMAINT_GROUP 中定義的組。 (IV)如果使用者 ID 屬於以上任何一個組,那麼 db2stop 命令將得以執行。 否則,將返回一條錯誤訊息。 取決於實例級操作,使用者可能必須屬於 SYSADM、SYSCTRL、SYSMAINT 或 SYSMON 中的一個組。 在以上每個場景中,都調用了作業系統來進行安全性檢查。 而從 8.2 版開始,以上每種情況都可以使用安全性外掛程式。 因而,不必總是叫用作業系統,在場景 1 中可以調用伺服器和組外掛程式,在場景 2 中可以調用組外掛程式,在場景 3 和場景 4 中可以調用客戶機和組外掛程式。 這個例子介紹了三種類型的安全性外掛程式: 伺服器端身份驗證安全性外掛程式(即伺服器身份驗證外掛程式) 用戶端身份驗證安全性外掛程式(即客戶機身份驗證外掛程式) 組成員查找安全性外掛程式(即組外掛程式) 伺服器身份驗證外掛程式在資料庫伺服器上執行身份驗證。 它還用於檢查一個 authID 是否為外掛程式所知。 例如,考慮 SQL 語句 grant select on table user1.t1 to FOO,DB2 不知道 FOO 是使用者還是組。 在這種情況下,DB2 詢問所有伺服器端外掛程式和組成員外掛程式,以檢查 FOO 是使用者還是組,或者兩者都是,或者無法確定,從而可以對該 SQL 語句作出回應。 客戶機身份驗證外掛程式在客戶機上執行身份驗證。 在執行實例級命令(例如 db2start、db2stop、db2trc、update dbm cfg 等)時,它還用於執行實例級本地授權。 因此,常常可以看到在一個資料庫伺服器上同時指定了客戶機身份驗證外掛程式和伺服器身份驗證外掛程式。 組外掛程式在客戶機和資料庫伺服器上執行組成員查找。 它還用於檢查一個 authID 是否為外掛程式所知。 每個安全性外掛程式由一組 API 組成,需要實現這些 API。 DB2 提供安全性外掛程式基礎設施和一些缺省的安全性外掛程式。 定制的安全性外掛程式的實現則有待您來決定。 責任編輯 趙毅 zhaoyi#51cto.com TEL:(010)68476636-8001 給力(0票)動心(0票)廢話(0票)專業(0票)標題党(0票)路過(0票) 原文:DB2 UDB 安全性外掛程式概述 返回網路安全首頁