天天看點

DB2資料庫安全(二)——身份認證身份認證(authentication)

根據《循序漸進db2》(牛新莊)第13章内容整理

  db2身份認證 控制資料庫安全性政策的以下方面:

誰有權通路執行個體或資料庫

在哪裡以及如何校驗使用者的 密碼

  在發出attach和connect指令時,它借助于底層作業系統的安全特性實作對db2使用者的身份認證。attach指令用來連接配接執行個體。connect指令用來連接配接執行個體中的資料庫。

  下面的示例展示了db2對發出這些指令的使用者進行身份驗證的不同方式,這些示例在資料庫管理程式配置檔案中使用預設的身份認證類型server。最後一個示例說明了如何使用db2修改伺服器作業系統上的密碼。

  用建立db2執行個體時的使用者id登入到安裝db2的機器上。發出以下指令:

這裡,雖然沒有顯示的提供使用者名和密碼,但是隐式地執行了身份認證。使用登入機器的使用者id,并假設這個id和密碼已經經過了作業系統的檢驗。

顯示的指令為:

  db2能夠根據使用者是試圖連接配接資料庫,還是執行執行個體連接配接和執行個體級操作,指定不同的身份認證機制。在預設情況下,執行個體對于所有執行個體級和連接配接級請求使用一種身份認證類型,這由資料庫管理配置參數authentication來指定。db2 v9.1中引入了資料庫管理程式配置參數srvcon_auth。這個參數專門處理對資料庫的連接配接。例如,如果在dbm cfg中進行以下設定:

server

server_encrypt

kerberos

krb_server_encrypt

client

身份認證是在伺服器和客戶機處同時設定的。

伺服器

  每個執行個體僅允許一種類型的身份認證,也就是說,設定适用于該執行個體下定義的所有資料庫。在資料庫管理器配置檔案中使用authentication參數指定該設定。

客戶機

  在客戶機上編目的各資料庫擁有自己的身份認證類型,使用catalog database 指令指定。

  使用server選項時,使用者id和密碼将發送到伺服器進行校驗。考慮以下示例:

(1)使用者使用使用者名peter和密碼peterpwd登入到工作站

(2)peter随後使用使用者id db2user和密碼db2pwd連接配接到sample資料庫,這是在遠端db2伺服器上定義的。

(3)db2user和 db2pwd在db2伺服器上被校驗。

  若您想避免使用者id和密碼在網絡上被竊聽,可使用server_encrypt身份認證類型,這樣使用者id和密碼就都會被加密.

  是一種外部安全性協定,它使用通用密碼術建立共享的加密密鑰。kerberos安全協定作為第三方使用者身份認證服務執行身份認證,它使用傳統的密碼術建立一個共享的密鑰。這個密鑰成為使用者的憑證,在請求本地或網絡服務時在所有情況下都使用它檢驗使用者身份。kereros提供了安全的身份認證機制,這是因為使用者id和密碼不再需要以明文形式通過網絡傳輸。通過使用kerberos安全協定,可以實作對遠端db2資料庫伺服器的單點登入。

DB2資料庫安全(二)——身份認證身份認證(authentication)

如上所述,kerberos身份認證在db2中是使用插件架構實作的。預設的kerberos插件的源代碼在samples/security/plugins目錄中,稱為ibmkrb5.c。在db2中使用kerberos之前,必須在客戶機和伺服器上同時啟用和支援kerberos。為此,必須滿足以下條件:

客戶機和伺服器必須屬于同一個域(用windows術語來說,是可信域)

必須設定适當的主體(kerberos中的使用者id)

必須建立伺服器的keytab檔案,執行個體所有者必須能夠讀這個檔案

所有機器必須有同步的時鐘

  db2客戶機和伺服器均支援kerberos安全協定時,即可使用kerberos身份認證類型。某些客戶機可能并不支援kerberos,但依然需要通路db2伺服器。為確定所有類型的客戶機都能安全的連接配接,将db2伺服器的身份認證類型設定為krb_server_encrypt.這允許所有啟用了kerberos的客戶機使用kerberos進行身份驗證,而其他客戶機使用server_encrypt身份牙周,如下圖所示:

客戶機設定

伺服器設定

客戶機/伺服器解決方案

any other setting

設定kerberos身份認證

   為了在db2中啟用kerberos身份認證,必須先告訴客戶機在哪裡尋找将使用的kerberos插件,在客戶機上,運作以下指令:

  在上面的示例中,使用預設的kerberos插件。如果使用的kerberos需要實作特殊功能,dba可以通過修改這個插件來執行特殊功能。

  還可以告訴客戶機它正在針對哪個伺服器主體進行身份認證。這個選項可以避免kerberos身份認證的第一步,即客戶機尋找他要連接配接的執行個體所在的伺服器主體。在客戶機上對資料庫進行編目時可以指定authentication參數。它的格式是: