安全性插件是動態可裝載庫,當 DB2 UDB 進行身份驗證或者從組成員中查找某個用戶的時候,便調用這些庫。在 8.2 版之前,這些操作是由 DB2 UDB 之外的設施管理的,例如操作系統、域管理器或 Kerberos 安全性系統。圖 1 提供的場景說明了在 8.2 版之前 DB2 UDB 安全性的工作原理。下一節將描述 8.2 版中發生的變化。
圖 1 說明了 4 個安全性場景:
在以上每個場景中,都調用了操作系統來進行安全性檢查。而從 8.2 版開始,以上每種情況都可以使用安全性插件。因而,不必總是調用操作系統,在場景 1 中可以調用服務器和組插件,在場景 2 中可以調用組插件,在場景 3 和場景 4 中可以調用客戶機和組插件。
這個例子介紹了三種類型的安全性插件:
服務器身份驗證插件在數據庫服務器上執行身份驗證。它還用于檢查一個 authID 是否為插件所知。例如,考慮 SQL 語句 ,DB2 不知道 FOO 是用戶還是組。在這種情況下,DB2 詢問所有服務器端插件和組成員插件,以檢查 FOO 是用戶還是組,或者兩者都是,或者無法確定,從而可以對該 SQL 語句作出響應。
客戶機身份驗證插件在客戶機上執行身份驗證。在執行實例級命令(例如 、、、 等)時,它還用于執行實例級本地授權。因此,常常可以看到在一個數據庫服務器上同時指定了客戶機身份驗證插件和服務器身份驗證插件。
組插件在客戶機和數據庫服務器上執行組成員查找。它還用于檢查一個 authID 是否為插件所知。
每個安全性插件由一組 API 組成,需要實現這些 API。DB2 提供安全性插件基礎設施和一些缺省的安全性插件。定制的安全性插件的實現則有待您來決定。


