DB2數據庫安全
本章介紹數據庫的安全性問題。
DB2數據庫和功能可以由兩個不同的安全控製模式進行管理:
- 認證
- 授權
認證
驗證是確認,在僅根據權限的用戶日誌來執行他被授權執行的活動的過程中。用戶認證可以在操作係統級彆或數據庫級彆本身進行。通過身份驗證的工具生物識彆技術,如視網膜和數字印刷都在使用,以防止黑客或惡意用戶的數據庫。
數據庫安全可以從DB2數據庫係統之外進行管理。這裡有一些類型的安全認證過程:
- 基於操作係統的認證。
- 輕量級目錄訪問協議(LDAP)
對於DB2,安全服務是操作係統作為一個單獨的產品的一部分。對於身份驗證,它需要兩個不同的憑據,這些都是用戶ID或用戶名和密碼。
授權
可以訪問DB2數據庫係統,這是由在DB2數據庫管理器管理內的DB2數據庫和它的功能性。授權是由DB2數據庫管理器管理的過程。該管理器獲得有關當前鑒定的用戶,指示哪個數據庫操作的用戶可以執行或訪問信息。
下麵是可用於授權的權限的不同方法:
主要權限:直接授予的授權ID。
次級權限:授予給組和角色,如果用戶是一個成員
公共權限:授予公開所有用戶。
上下文相關的權限:授予到受信任上下文中的作用。
授權可以給基於以下類彆的用戶:
- 係統級授權
- 係統管理員[SYSADM]
- 係統控製 [SYSCTRL]
- 係統維護 [SYSMAINT]
- 係統監視 [SYSMON]
當局提供了實例級彆的功能控製。管理局提供給組權限,控製維護和權威操作。例如,數據庫和數據庫對象。
- 數據庫級授權
- 安全管理員 [SECADM]
- 數據庫管理員 [DBADM]
- 訪問控製 [ACCESSCTRL]
- 數據訪問 [DATAACCESS]
- SQL管理員 [SQLADM]
- 工作負載管理管理員[WLMADM]
- 解釋 [EXPLAIN]
有關部門提供的數據庫中的控件。其他機構的數據庫,包括LDAD和CONNECT。
- 對象級授權:對象級授權涉及驗證權限當對象上執行的動作。
- 基於內容的授權:用戶可以讀取和使用基於標簽的訪問控製[LBAC]寫訪問個彆行和列的特定表。
DB2表和配置文件用於記錄與授權名稱關聯的權限。當用戶試圖訪問數據,記錄的權限驗證以下權限:
- 用戶的授權名稱
- 哪組屬於用戶
- 哪些角色被直接授予用戶或間接向一組
- 通過受信任上下文獲得的權限。
同時用SQL語句在工作中,DB2授權模型考慮了以下權限的組合:
- 與SQL語句相關聯的主授權ID授予的權限。
- 二級授權ID與SQL語句相關。
- 授予PUBLIC
- 授予可信上下文角色。
實例級受權
讓我們討論一些實例有關受權。
係統管理權限(SYSADM)
它是在實例級的最高級彆的管理權限。具有SYSADM權限的用戶可以在實例中執行某些數據庫和數據庫管理器命令。具有SYSADM權限的用戶可以執行以下操作:
- 升級數據庫
- 恢複數據庫
- 更新數據庫管理器配置文件。
係統控製權限(SYSCTRL)
它是在係統控製權限的最高水平。它提供了對數據庫管理器實例及其數據庫執行維護和實用操作。這些操作可以影響係統資源,但它們不允許直接訪問數據庫中的數據。
SYSCTRL權限的用戶可以執行以下操作:
- 更新數據庫,節點或分布式連接服務(DCS)目錄
- 強迫用戶關閉係統級
- 創建或刪除數據庫級
- 創建,修改或刪除表空間
- 使用任何表空間
- 還原數據庫
係統維護權限(SYSMAINT)
它是係統的控製權限的第二級。它提供了對數據庫管理器實例及其數據庫執行維護和實用操作。這些操作會影響係統資源,而不允許直接訪問數據庫中的數據。這個權限的目的是為用戶維護一個包含敏感數據的數據庫管理器實例中的數據庫。
隻有具有SYSMAINT或更高級彆的係統受權的用戶可以執行以下任務:
- 執行備份
- 還原備份
- 向前回滾恢複
- 啟動或停止實例
- 恢複表空間
- 執行db2trc命令
- 以係統監控快照的情況下的實例級彆的用戶或數據庫級彆的用戶。
具有SYSMAINT用戶可以執行以下任務:
- 查詢表空間的狀態
- 更新日誌曆史文件
- 表重組
- 使用RUNSTATS(收集目錄統計信息)
係統監視權限(SYSMON)
有了這個權限,用戶可以監控或采取數據庫管理器實例或它的數據庫的快照。 SYSMON權限使運行以下任務的用戶:
- GET DATABASE MANAGER MONITOR SWITCHES
- GET MONITOR SWITCHES
- GET SNAPSHOT
-
LIST
- LIST ACTIVE DATABASES
- LIST APPLICATIONS
- LIST DATABASE PARTITION GROUPS
- LIST DCS APPLICATIONS
- LIST PACKAGES
- LIST TABLES
- LIST TABLESPACE CONTAINERS
- LIST TABLESPACES
- LIST UTITLITIES
- RESET MONITOR
- UPDATE MONITOR SWITCHES
數據庫權限
每個數據庫授權持有授權ID執行數據庫的一些操作。這些數據庫授權的權限不同。下麵是一些數據庫權限列表:
ACCESSCTRL: 允許授予和撤銷所有對象特權和數據庫權限。
BINDADD: 允許創建一個新包在數據庫中。
CONNECT: 允許連接到數據庫。
CREATETAB: 允許在數據庫中創建新表。
CREATE_EXTERNAL_ROUTINE: 允許創建要使用的應用程序和數據庫的用戶的過程。
DATAACCESS: 允許用戶訪問存儲在數據庫表中的數據。
DBADM: 作為一個數據庫管理員。它提供了除ACCESSCTRL,DATAACCESS和SECADM的所有其他數據庫權限。
EXPLAIN: 可以解釋的查詢計劃,而不需要他們持有的特權訪問數據表。
IMPLICIT_SCHEMA: 允許用戶通過使用CREATE語句創建一個對象隱式地創建一個模式。
LOAD: 允許將數據加載到表中。
QUIESCE_CONNECT: 允許訪問該數據庫,而它是靜止(臨時禁用)。
SECADM: 允許作為安全管理員的數據庫。
SQLADM: 允許監視和調整SQL語句。
WLMADM: 允許充當工作負載管理員
權限
SETSESSIONUSER
授權標識特權包括對授權標識的行為。隻有一個權限,稱為SETSESSIONUSER特權。它可以授予用戶或組,並允許會話用戶身份切換到任何在其上的權限被授予的授權ID。此特權授予用戶SECADM權限。
模式特權
這種特權涉及對數據庫的模式操作。該模式的所有者擁有所有操縱表,視圖,索引,包,數據類型,函數,觸發器,過程和彆名的模式對象的權限。一個用戶,一個組,一個角色或PUBLIC可以授予以下權限的用戶:
- CREATEIN: 允許模式中創建對象
- ALTERIN: 允許模式中修改的對象。
DROPIN權限
這允許在模式中刪除的對象。
表空間權限
這些權限涉及到對數據庫表空間的操作。用戶可被授予USE特權的表空間。該權限讓他們在表空間中創建數據表。特權所有者可以授予USE特權具有與創建表空間時,表空間GRANT OPTION命令。SECADM或ACCESSCTRL機關有權對表空間使用特權的權限。
表和視圖權限
用戶必須擁有對數據庫的CONNECT權限可以使用表和視圖權限。特權表和視圖,如下所示:
CONTROL
它為表或視圖,包括刪除和授予提供的所有權限,撤銷各個表權限給用戶。
ALTER
它允許用戶修改的表。
DELETE
它允許用戶從表中或視圖中刪除行。
INDEX
它允許用戶將行插入表或視圖。它也可以運行導入實用程序。
REFERENCES
它允許用戶創建和刪除外鍵。
SELECT
它允許用戶從表中或視圖中檢索行。
UPDATE
它允許用戶改變表或視圖的條目。
包權限
用戶必須具有連接權限數據庫。包是包含數據庫管理的信息來訪問以最有效的方式為特定的應用程序數據的數據庫對象。
控製
它提供了重新綁定的權限,刪除或執行包用戶。此權限的用戶被授予BIND 和 EXECUTE權限。
綁定
它允許用戶綁定或重新綁定該程序包。
執行
允許執行一個包。
索引權限
此權限自動接收對索引CONTROL特權。
序列權限
序列自動對序列的接收使用情況和ALTER權限。
例程權限
它涉及的例程,如函數,過程,和一個數據庫中的方法的操作。