介紹
在獲知用戶是否被授權進行特定操作之前,DB 2 必須能夠獲知外部用戶的有效數據庫授權 ID 及其所屬的組。為了找到有效數據庫授權 ID,需要確保外部用戶就是所聲稱的用戶,然後將其外部用戶 ID 映射到內部 DB2 授權 ID。此過程被稱為身份驗證。DB2 沒有用於維護用戶 ID 和密碼,或用戶 ID 組成員關系的機制。
安全性插件的作用是什麼?
有兩個事件需要使用(客戶端或服務器端)身份驗證插件或組成員查找插件:
實例級操作是涉及 DB2 實例維護的任何操作。實例級操作的典型例子為更新數據庫管理器配置參數和啟動數據庫管理器。
首先,我們看一下實例級操作。大多數實例級操作命令不會接受用戶 ID 或密碼作為輸入部分。在這種情況下,DB2 使用客戶端身份驗證插件(即 clIEnt auth 插件)找到發出命令的當前登錄用戶。(這就是所謂的獲得默認登錄上下文。登錄上下文可以是用戶 ID/密碼對或 Generic Security Services API [GSS-API] 憑證,如 Kerberos 票據)。一旦獲取用戶的身份,將使用 DB2 組成員查找插件(即 group plug-in)為用戶生成組授權 ID 列表。
在連接建立或實例連接中,用戶 ID 和密碼是可選的。如果用戶選擇不指定用戶 ID 和密碼,則 DB2 使用客戶端身份驗證插件來獲得默認登錄上下文。然後,將登錄上下文發送到服務器以獲取用戶的組授權 ID。如果用戶選擇指定用戶 ID 和密碼,且未將身份驗證類型數據庫管理器配置參數指定為 CLIENT,則 DB2 執行下面的步驟:
表 1. 除 CLIENT 之外的身份驗證的信息流