DB2安全性概述

來源:互聯網
上載者:User

----start

DB2 的安全性由兩方面組成:認證和授權

認證

認證就是系統驗證使用者身份的過程。說的簡單點,就是驗證使用者名稱和密碼,因為DB2使用者同時也是作業系統使用者,所以,首先必須得到作業系統的認可。在預設情況下,DB2使用的就是基於作業系統的使用者認證。當然,你也可以指定其它認證方式。DBM
CFG 的AUTHENTICATION參數決定在哪裡進行使用者認證。

AUTHENTICATION可以設定為以下值:

SERVER (default) 認證在伺服器端執行<br />CLIENT 認證在用戶端執行<br />SERVER_ENCRYPT 和SERVER 參數相似,而且使用者的id 和密碼都經過加密<br />KERBEROS 認證使用Kerberos 安全機制<br />SQL_AUTHENTICATION_DATAENC在伺服器端進行認證,資料庫連接時必須使用資料加密<br />SQL_AUTHENTICATION_DATAENC_CMP與上面類似,但當條件不允許的情況下,可以不對資料進行加密<br />GSSPLUGIN 使用外部的基於GSS API 外掛程式的安全工具進行認證<br /> 

查看當前設定:db2 get dbm cfg | grep AUTHENTICATION

 

授權

授權是 DB2
 擷取有關已認證的DB2
使用者的資訊的過程,此資訊指示該使用者可執行檔資料庫操作,以及可訪問的資料對象。


很多人都感覺DB2的許可權非常難理解,其實非常簡單,大家之所以感覺難理解,主要原因是IBM把它介紹複雜了,然後,各種書籍、資料把DB2 的官方資料翻譯出來呈現在大家面前,有的翻譯的可能並不是很好,所以大家就感覺難理解了。其實,大家完全可以把DB2想象一個倉庫,倉庫中有好多房間,房間中有好多東西。倉庫管理員有所有房間的鑰匙,你想進入某個房間時,你必須有該房間的鑰匙。如果你沒有鑰匙,你可以像管理員申請。那麼DB2
有哪些房間呢(也就是DB2的組成部分)? DB2由
執行個體、資料庫、資料表空間、模式、表、視圖等組成。每個組成部分都定義了相應的許可權,如:你想訪問某個表,那麼你首先得串連資料庫,所以,你必須具有該資料庫的CONNECT許可權,同時你還必須有該表的SELECT
許可權。這就相當於,你想進入一個房間,你必須有該房間的鑰匙。下面我們來瞭解一下DB2的不同組成部分定義了哪些許可權:

執行個體層級許可權:

SYSADM系統管理許可權<br />SYSCTRL系統控制許可權<br />SYSMAINT系統維護許可權<br />SYSMON系統監視許可權<br /> 

資料庫層級許可權:

ACCESSCTRL 允許擁有者授予和撤銷所有對象特權和資料庫許可權以及 ACCESSCTRL、DATAACCESS、DBADM 和 SECADM 許可權<br />BINDADD 允許擁有者在資料庫中建立新包<br />CONNECT 允許擁有者串連到資料庫<br />CREATETAB 允許擁有者在資料庫中建立新表<br />CREATE_EXTERNAL_ROUTINE 允許擁有者建立過程以供資料庫的應用程式和其他使用者使用<br />CREATE_NOT_FENCED_ROUTINE 允許擁有者建立未受防護的使用者定義的函數(UDF)或過程<br />DATAACCESS 允許擁有者訪問儲存在資料庫表中的資料。<br />DBADM 允許擁有者充當資料庫管理員<br />EXPLAIN 允許擁有者說明查詢方案,而不要求他們擁有訪問這些查詢方案所引用的表中資料的特權<br />IMPLICIT_SCHEMA 允許任何使用者隱式地建立模式<br />LOAD 允許擁有者將資料裝入到表中。<br />QUIESCE_CONNECT 允許擁有者在資料庫處於停頓狀態時訪問該資料庫。<br />SECADM 允許擁有者充當資料庫的安全性系統管理員。<br />SQLADM 允許擁有者監視和調整 SQL 陳述式。<br />WLMADM 允許擁有者充當工作負載管理員<br />GRANT CREATETAB ON DATABASE TO USER <user_name><br />REVOKE CREATETAB ON DATABASE FROM USER <user_name>

資料表空間特權

USE允許使用者在該資料表空間中建立表<br />GRANT USE OF TABLESPACE <tablespace_name> TO USER <user_name><br />REVOKE USE OF TABLESPACE <tablespace_name> FROM USER <user_name>

模式特權

CREATEIN 允許使用者在模式中建立對象<br />ALTERIN 允許使用者在模式中改變對象<br />DROPIN 允許使用者在模式中刪除對象<br />GRANT CREATEIN,DROPIN,ALTERIN ON SCHEMA <schema_name> TO USER <user_name><br />REVOKE CREATEIN,DROPIN,ALTERIN ON SCHEMA <schema_name> FROM USER <user_name>

表和視圖特權

SELECT 允許使用者檢索表或視圖中的行、對錶建立視圖以及運行 EXPORT 公用程式。<br />INSERT 允許使用者將行插入表或視圖以及運行 IMPORT 公用程式。<br />UPDATE 允許使用者更改表或視圖中的條目,或表或視圖中的一個或多個特定列的條目。使用者只能對特定的列擁有此特權。<br />DELETE 允許使用者從表或視圖中刪除行。<br />ALTER 允許使用者修改表,例如,為表添加列或唯一約束。具有 ALTER 特權使用者還可以 COMMENT ON 一個表,或者表的一列。<br />INDEX 允許使用者對錶建立一個索引。索引建立者自動具有索引的 CONTROL 特權。<br />REFERENCES 允許使用者建立和刪除一個外鍵,並指定該表為關係中的父表。使用者可能只對特定的列擁有此特權。<br />CONTROL 給使用者提供對錶或視圖的所有特權,包括刪除它以及授予和撤銷各個表特權的功能。<br />GRANT SELECT ON TABLE <table_name> TO USER <user_name><br />REVOKE SELECT ON TABLE <table_name> FROM USER <user_name>

 索引特權

CONTROL 允許使用者刪除和修改索引<br />GRANT CONTROL ON INDEX <indext_name> TO USER <user_name><br />REVOKE CONTROL ON INDEX <indext_name> FROM USER <user_name>

函數、過程、方法特權

EXECUTE 允許使用者執行函數、過程、方法<br />GRANT EXECUTE ON FUNCTION <function_name> TO USER <user_name><br />GRANT EXECUTE ON PROCEDURE <procedure_name> TO USER <user_name><br />GRANT EXECUTE ON METHOD <method_name> TO USER <user_name><br /> 

程式包特權

EXECUTE 允許使用者執行或運行程式包<br />BIND 允許使用者重新綁定或綁定該程式包以及添加具有相同程式包名和建立者的新程式包版本<br />CONTROL 給使用者提供重新綁定、刪除或執行程式包的功能,以及將那些特權授予其他使用者的功能<br />REVOKE EXECUTE ON PACKAGE <package_name> FROM USER <user_name><br />GRANT EXECUTE ON PACKAGE <package_name> TO USER <user_name> 

使用者、使用者組、PUBLIC組

DB2 的使用者是作業系統使用者,當然,DB2使用者組也是作業系統使用者組。由上面的介紹大家就可以知道賦予使用者權限是非常繁瑣的,為了方便許可權管理,我們可以把許可權賦給使用者組,這樣,任何屬於該組的使用者都可以獲得相應的許可權。值得注意的是DB2還定義了一個PUBLIC組,任何人或組都屬於PUBLIC組,當一個資料庫建立時,下面的特權都會自動的授予PUBLIC 組:CONNECT,CREATETAB,IMPLICIT
SCHEMA,BINDADD,這就是當我們建立一個作業系統使用者,沒有賦給它任何許可權,而它卻可以串連資料庫的原因。

 

賦予使用者執行個體層級許可權

細心的朋友可能已經發現了,我們在介紹執行個體層級許可權的時候沒有說明如何賦予使用者執行個體層級許可權,那是因為我們不能通過GRANT和REVOKE語句賦予和撤銷許可權,而且執行個體層級許可權也不能賦予單個使用者,只能賦予使用者組。那麼到底該怎麼賦予使用者組執行個體層級許可權呢?在DBM CFG中定義以下4個參數,我們只要修改這幾個參數就可以賦予使用者組相應的執行個體級許可權。

db2 get dbm cfg | grep GROUP<br />SYSADM_GROUP<br />SYSCTRL_GROUP<br />SYSMAINT_GROUP<br />SYSMON_GROUP 

---更多參見:DB2 精萃

----聲明:轉載請註明出處。

----last updated on 2009.11.11

----written by ShangBo on 2009.11.10

----end

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.