本章介紹數(shù)據(jù)庫的安全性問題。
DB2數(shù)據(jù)庫和功能可以由兩個不同的安全控制模式進(jìn)行管理:
驗證是確認(rèn),在僅根據(jù)權(quán)限的用戶日志來執(zhí)行他被授權(quán)執(zhí)行的活動的過程中。用戶認(rèn)證可以在操作系統(tǒng)級別或數(shù)據(jù)庫級別本身進(jìn)行。通過身份驗證的工具生物識別技術(shù),如視網(wǎng)膜和數(shù)字印刷都在使用,以防止黑客或惡意用戶的數(shù)據(jù)庫。
數(shù)據(jù)庫安全可以從DB2數(shù)據(jù)庫系統(tǒng)之外進(jìn)行管理。這里有一些類型的安全認(rèn)證過程:
對于DB2,安全服務(wù)是操作系統(tǒng)作為一個單獨的產(chǎn)品的一部分。對于身份驗證,它需要兩個不同的憑據(jù),這些都是用戶ID或用戶名和密碼。
可以訪問DB2數(shù)據(jù)庫系統(tǒng),這是由在DB2數(shù)據(jù)庫管理器管理內(nèi)的DB2數(shù)據(jù)庫和它的功能性。授權(quán)是由DB2數(shù)據(jù)庫管理器管理的過程。該管理器獲得有關(guān)當(dāng)前鑒定的用戶,指示哪個數(shù)據(jù)庫操作的用戶可以執(zhí)行或訪問信息。
下面是可用于授權(quán)的權(quán)限的不同方法:
主要權(quán)限:直接授予的授權(quán)ID。
次級權(quán)限:授予給組和角色,如果用戶是一個成員
公共權(quán)限:授予公開所有用戶。
上下文相關(guān)的權(quán)限:授予到受信任上下文中的作用。
授權(quán)可以給基于以下類別的用戶:
當(dāng)局提供了實例級別的功能控制。管理局提供給組權(quán)限,控制維護(hù)和權(quán)威操作。例如,數(shù)據(jù)庫和數(shù)據(jù)庫對象。
有關(guān)部門提供的數(shù)據(jù)庫中的控件。其他機(jī)構(gòu)的數(shù)據(jù)庫,包括LDAD和CONNECT。
DB2表和配置文件用于記錄與授權(quán)名稱關(guān)聯(lián)的權(quán)限。當(dāng)用戶試圖訪問數(shù)據(jù),記錄的權(quán)限驗證以下權(quán)限:
同時用SQL語句在工作中,DB2授權(quán)模型考慮了以下權(quán)限的組合:
讓我們討論一些實例有關(guān)受權(quán)。
它是在實例級的最高級別的管理權(quán)限。具有SYSADM權(quán)限的用戶可以在實例中執(zhí)行某些數(shù)據(jù)庫和數(shù)據(jù)庫管理器命令。具有SYSADM權(quán)限的用戶可以執(zhí)行以下操作:
它是在系統(tǒng)控制權(quán)限的最高水平。它提供了對數(shù)據(jù)庫管理器實例及其數(shù)據(jù)庫執(zhí)行維護(hù)和實用操作。這些操作可以影響系統(tǒng)資源,但它們不允許直接訪問數(shù)據(jù)庫中的數(shù)據(jù)。
SYSCTRL權(quán)限的用戶可以執(zhí)行以下操作:
它是系統(tǒng)的控制權(quán)限的第二級。它提供了對數(shù)據(jù)庫管理器實例及其數(shù)據(jù)庫執(zhí)行維護(hù)和實用操作。這些操作會影響系統(tǒng)資源,而不允許直接訪問數(shù)據(jù)庫中的數(shù)據(jù)。這個權(quán)限的目的是為用戶維護(hù)一個包含敏感數(shù)據(jù)的數(shù)據(jù)庫管理器實例中的數(shù)據(jù)庫。
只有具有SYSMAINT或更高級別的系統(tǒng)受權(quán)的用戶可以執(zhí)行以下任務(wù):
具有SYSMAINT用戶可以執(zhí)行以下任務(wù):
有了這個權(quán)限,用戶可以監(jiān)控或采取數(shù)據(jù)庫管理器實例或它的數(shù)據(jù)庫的快照。 SYSMON權(quán)限使運(yùn)行以下任務(wù)的用戶:
每個數(shù)據(jù)庫授權(quán)持有授權(quán)ID執(zhí)行數(shù)據(jù)庫的一些操作。這些數(shù)據(jù)庫授權(quán)的權(quán)限不同。下面是一些數(shù)據(jù)庫權(quán)限列表:
ACCESSCTRL: 允許授予和撤銷所有對象特權(quán)和數(shù)據(jù)庫權(quán)限。
BINDADD: 允許創(chuàng)建一個新包在數(shù)據(jù)庫中。
CONNECT: 允許連接到數(shù)據(jù)庫。
CREATETAB: 允許在數(shù)據(jù)庫中創(chuàng)建新表。
CREATE_EXTERNAL_ROUTINE: 允許創(chuàng)建要使用的應(yīng)用程序和數(shù)據(jù)庫的用戶的過程。
DATAACCESS: 允許用戶訪問存儲在數(shù)據(jù)庫表中的數(shù)據(jù)。
DBADM: 作為一個數(shù)據(jù)庫管理員。它提供了除ACCESSCTRL,DATAACCESS和SECADM的所有其他數(shù)據(jù)庫權(quán)限。
EXPLAIN: 可以解釋的查詢計劃,而不需要他們持有的特權(quán)訪問數(shù)據(jù)表。
IMPLICIT_SCHEMA: 允許用戶通過使用CREATE語句創(chuàng)建一個對象隱式地創(chuàng)建一個模式。
LOAD: 允許將數(shù)據(jù)加載到表中。
QUIESCE_CONNECT: 允許訪問該數(shù)據(jù)庫,而它是靜止(臨時禁用)。
SECADM: 允許作為安全管理員的數(shù)據(jù)庫。
SQLADM: 允許監(jiān)視和調(diào)整SQL語句。
WLMADM: 允許充當(dāng)工作負(fù)載管理員
授權(quán)標(biāo)識特權(quán)包括對授權(quán)標(biāo)識的行為。只有一個權(quán)限,稱為SETSESSIONUSER特權(quán)。它可以授予用戶或組,并允許會話用戶身份切換到任何在其上的權(quán)限被授予的授權(quán)ID。此特權(quán)授予用戶SECADM權(quán)限。
這種特權(quán)涉及對數(shù)據(jù)庫的模式操作。該模式的所有者擁有所有操縱表,視圖,索引,包,數(shù)據(jù)類型,函數(shù),觸發(fā)器,過程和別名的模式對象的權(quán)限。一個用戶,一個組,一個角色或PUBLIC可以授予以下權(quán)限的用戶:
這允許在模式中刪除的對象。
這些權(quán)限涉及到對數(shù)據(jù)庫表空間的操作。用戶可被授予USE特權(quán)的表空間。該權(quán)限讓他們在表空間中創(chuàng)建數(shù)據(jù)表。特權(quán)所有者可以授予USE特權(quán)具有與創(chuàng)建表空間時,表空間GRANT OPTION命令。SECADM或ACCESSCTRL機(jī)關(guān)有權(quán)對表空間使用特權(quán)的權(quán)限。
用戶必須擁有對數(shù)據(jù)庫的CONNECT權(quán)限可以使用表和視圖權(quán)限。特權(quán)表和視圖,如下所示:
它為表或視圖,包括刪除和授予提供的所有權(quán)限,撤銷各個表權(quán)限給用戶。
它允許用戶修改的表。
它允許用戶從表中或視圖中刪除行。
它允許用戶將行插入表或視圖。它也可以運(yùn)行導(dǎo)入實用程序。
它允許用戶創(chuàng)建和刪除外鍵。
它允許用戶從表中或視圖中檢索行。
它允許用戶改變表或視圖的條目。
用戶必須具有連接權(quán)限數(shù)據(jù)庫。包是包含數(shù)據(jù)庫管理的信息來訪問以最有效的方式為特定的應(yīng)用程序數(shù)據(jù)的數(shù)據(jù)庫對象。
它提供了重新綁定的權(quán)限,刪除或執(zhí)行包用戶。此權(quán)限的用戶被授予BIND 和 EXECUTE權(quán)限。
它允許用戶綁定或重新綁定該程序包。
允許執(zhí)行一個包。
此權(quán)限自動接收對索引CONTROL特權(quán)。
序列自動對序列的接收使用情況和ALTER權(quán)限。
它涉及的例程,如函數(shù),過程,和一個數(shù)據(jù)庫中的方法的操作。