亚洲成精品动漫久久精久,九九在线精品视频播放,黄色成人免费观看,三级成人影院,久碰久,四虎成人欧美精品在永久在线

掃一掃
關(guān)注微信公眾號(hào)

DB2 UDB 安全性插件概述
2008-04-24   

安全性插件是動(dòng)態(tài)可裝載庫(kù),當(dāng) DB2 UDB 進(jìn)行身份驗(yàn)證或者從組成員中查找某個(gè)用戶的時(shí)候,便調(diào)用這些庫(kù)。在 8.2 版之前,這些操作是由 DB2 UDB 之外的設(shè)施管理的,例如操作系統(tǒng)、域管理器或 Kerberos 安全性系統(tǒng)。圖 1 提供的場(chǎng)景說(shuō)明了在 8.2 版之前 DB2 UDB 安全性的工作原理。下一節(jié)將描述 8.2 版中發(fā)生的變化。

圖 1. 安全性場(chǎng)景

 

圖 1 說(shuō)明了 4 個(gè)安全性場(chǎng)景:

  1. 客戶機(jī)系統(tǒng)通過(guò)服務(wù)器系統(tǒng)連接到數(shù)據(jù)庫(kù)時(shí)的安全性考慮。

    在圖 1 左側(cè),一個(gè)用戶在 DB2 客戶機(jī)系統(tǒng)的命令行處理程序(CLP)窗口中發(fā)出了語(yǔ)句 connect to mydb user raul using raulpsw,以連接到位于 DB2 數(shù)據(jù)庫(kù)服務(wù)器 Aries 上的數(shù)據(jù)庫(kù) mydb。DB2 客戶機(jī)與服務(wù)器通信,協(xié)商采用何種身份驗(yàn)證方法。為簡(jiǎn)單起見(jiàn),我們假設(shè)客戶機(jī)使用服務(wù)器返回的身份驗(yàn)證方法。在圖中,AUTHENTICATION 被設(shè)置為 SERVER。這意味著,服務(wù)器(I)上的操作系統(tǒng)將通過(guò)檢查提供的用戶 ID 和密碼是否與存儲(chǔ)在操作系統(tǒng)安全性數(shù)據(jù)庫(kù)中的值匹配,來(lái)進(jìn)行身份驗(yàn)證。一旦用戶通過(guò)身份驗(yàn)證,DB2 將從操作系統(tǒng)獲得組成員信息。從此以后,DB2 不再在以后的檢查中使用用戶 ID 或密碼;相反,DB2 將使用授權(quán) ID(authID)。通常,authID 是用戶 ID 的大寫(xiě)版本。
  2. 連接到數(shù)據(jù)庫(kù)之后執(zhí)行 SQL 語(yǔ)句時(shí)的安全性考慮。

    圖 1 的左下部分展示了一條 SELECT 語(yǔ)句,該語(yǔ)句是在以 authID RAUL 連接到數(shù)據(jù)庫(kù) mydb 的情況下發(fā)出的。在這個(gè)例子中,內(nèi)部的 DB2 安全性設(shè)施審核 DB2 編目表,以確認(rèn) authID RAUL 被授予對(duì)表 KEVIN.TABLE1 執(zhí)行 SELECT 操作的權(quán)限,以此來(lái)執(zhí)行授權(quán)(authorization) 檢查。如果 authID RAUL 和 PUBLIC 沒(méi)有被授予這種權(quán)限,DB2 將檢查該用戶是否為幾個(gè)特殊的組(例如 SYSADM、SYSCTRL、SYSMAINT 或 SYSMON)的成員。對(duì)于這些組中的每一個(gè)組,都有數(shù)據(jù)庫(kù)管理器配置(dbm cfg)參數(shù),可以將這些參數(shù)設(shè)置為一個(gè)操作系統(tǒng)組的值。在連接時(shí),DB2 從操作系統(tǒng)中獲取用戶的組信息,并緩存在內(nèi)存中。然后,DB2 審核這個(gè)緩存的數(shù)據(jù)(II),以檢查 authID RAUL 是否為這些組中某個(gè)組的成員。例如,如果 authID 是 SYSADM 組的成員,那么 SELECT 可以繼續(xù),否則將返回一條錯(cuò)誤消息(SQLCODE -551)。
  3. 在客戶機(jī)實(shí)施安全性時(shí)的安全性考慮。

    在圖 1 中,如果 AUTHENTICATION 被設(shè)置為 CLIENT,那么客戶機(jī)上的操作系統(tǒng)將實(shí)施身份驗(yàn)證(III)。對(duì)于 SELECT 語(yǔ)句的授權(quán)檢查將如前面所說(shuō)的一樣進(jìn)行:DB2 從數(shù)據(jù)庫(kù)的 DB2 編目表中檢驗(yàn) authID RAUL 是否有對(duì) KEVIN.TABLE1 表的 SELECT 權(quán)限。如果 authID RAUL 和 PUBLIC 沒(méi)有該權(quán)限,將進(jìn)行組成員檢查。在連接時(shí),DB2 從客戶機(jī)獲得組成員信息,并緩存在服務(wù)器上。
  4. 發(fā)出實(shí)例級(jí)命令時(shí)的安全性考慮。

    在圖 1 中的服務(wù)器上,DB2 實(shí)例所有者 db2inst1 發(fā)出命令 db2stop。DB2 檢查當(dāng)前登錄進(jìn)來(lái)的用戶是否屬于 SYSADM_GROUP、SYSCTRL_GROUP 或 SYSMAINT_GROUP 中定義的組。(IV)如果用戶 ID 屬于以上任何一個(gè)組,那么 db2stop 命令將得以執(zhí)行。否則,將返回一條錯(cuò)誤消息。取決于實(shí)例級(jí)操作,用戶可能必須屬于 SYSADM、SYSCTRL、SYSMAINT 或 SYSMON 中的一個(gè)組。

在以上每個(gè)場(chǎng)景中,都調(diào)用了操作系統(tǒng)來(lái)進(jìn)行安全性檢查。而從 8.2 版開(kāi)始,以上每種情況都可以使用安全性插件。因而,不必總是調(diào)用操作系統(tǒng),在場(chǎng)景 1 中可以調(diào)用服務(wù)器和組插件,在場(chǎng)景 2 中可以調(diào)用組插件,在場(chǎng)景 3 和場(chǎng)景 4 中可以調(diào)用客戶機(jī)和組插件。

這個(gè)例子介紹了三種類(lèi)型的安全性插件:

  • 服務(wù)器端身份驗(yàn)證安全性插件(即服務(wù)器身份驗(yàn)證插件)
  • 客戶端身份驗(yàn)證安全性插件(即客戶機(jī)身份驗(yàn)證插件)
  • 組成員查找安全性插件(即組插件)

 

服務(wù)器身份驗(yàn)證插件在數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行身份驗(yàn)證。它還用于檢查一個(gè) authID 是否為插件所知。例如,考慮 SQL 語(yǔ)句 grant select on table user1.t1 to FOO,DB2 不知道 FOO 是用戶還是組。在這種情況下,DB2 詢問(wèn)所有服務(wù)器端插件和組成員插件,以檢查 FOO 是用戶還是組,或者兩者都是,或者無(wú)法確定,從而可以對(duì)該 SQL 語(yǔ)句作出響應(yīng)。

客戶機(jī)身份驗(yàn)證插件在客戶機(jī)上執(zhí)行身份驗(yàn)證。在執(zhí)行實(shí)例級(jí)命令(例如 db2startdb2stopdb2trcupdate dbm cfg 等)時(shí),它還用于執(zhí)行實(shí)例級(jí)本地授權(quán)。因此,常常可以看到在一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上同時(shí)指定了客戶機(jī)身份驗(yàn)證插件和服務(wù)器身份驗(yàn)證插件。

組插件在客戶機(jī)和數(shù)據(jù)庫(kù)服務(wù)器上執(zhí)行組成員查找。它還用于檢查一個(gè) authID 是否為插件所知。

每個(gè)安全性插件由一組 API 組成,需要實(shí)現(xiàn)這些 API。DB2 提供安全性插件基礎(chǔ)設(shè)施和一些缺省的安全性插件。定制的安全性插件的實(shí)現(xiàn)則有待您來(lái)決定。

熱詞搜索:

上一篇:破解本地的mysql用戶名和密碼
下一篇:Access 數(shù)據(jù)庫(kù)安全攻防策略

分享到: 收藏