自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DB2 9數(shù)據(jù)庫服務器管理之DB2安全性

安全 數(shù)據(jù)安全
DB2安全性是通過組合外部安全性服務與內部 DB2 授權機制來處理的。外部安全性服務對希望訪問 DB2 服務器的用戶進行身份驗證,DB2 外部的安全性軟件負責處理身份驗證。該軟件可以是操作系統(tǒng)的安全性設施,也可是 Kerberos 等獨立產品。

DB2安全性概述

DB2安全性是通過組合外部安全性服務與內部 DB2 授權機制來處理的。外部安全性服務對希望訪問 DB2 服務器的用戶進行身份驗證,DB2 外部的安全性軟件負責處理身份驗證。該軟件可以是操作系統(tǒng)的安全性設施,也可是 Kerberos 等獨立產品。成功校驗了用戶 ID 和口令后,內部 DB2 進程將接管控制,并確保用戶有權執(zhí)行所請求的操作。

圖1

身份驗證類型

身份驗證類型確定在何處驗證用戶 ID/口令對。所支持的身份驗證類型有:

SERVER(默認) 
SERVER_ENCRYPT 
KERBEROS 
KRB_SERVER_ENCRYPT 
CLIENT

身份驗證類型是在服務器和客戶機處同時設置的。

服務器

每個實例僅允許一種類型的身份驗證,也就是說,設置適用于該實例下定義的所有數(shù)據(jù)庫。在數(shù)據(jù)庫管理器配置文件中使用 AUTHENTICATION 參數(shù)指定該設置。DB2 update database manager configuration authentication auth_type

manager configuration authentication auth_type

客戶機

在客戶機處編目的各數(shù)據(jù)庫擁有自己的身份驗證類型,使用 catalog database 命令指定。#p#

使用 SERVER 選項進行身份驗證

DB2 catalog database db_name at node node_nameauthentication auth_type

使用 SERVER 選項時,用戶 ID 和口令將發(fā)送到服務器進行校驗。考慮以下示例。

圖2

1、用戶使用用戶名 peter 和口令 peterpwd 登錄到工作站。

2、peter 隨后使用用戶 ID db2user 和口令 db2pwd 連接到 SAMPLE 數(shù)據(jù)庫,這是在遠程 DB2 服務器上定義的。

3、db2user 和 db2pwd 通過網(wǎng)絡發(fā)送到服務器。

4、db2user 和 db2pwd 在 DB2 服務器上校驗。

若您想保護用戶 ID 和口令免于被竊聽,可使用身份驗證類型 SERVER_ENCRYPT,這樣用戶 ID 和口令就都會被加密。

使用 Kerberos 進行身份驗證

Kerberos 是一種外部安全性設施,它使用通用密碼術創(chuàng)建共享的加密密鑰。Kerberos 提供了安全的身份驗證機制,這是因為用戶 ID 和口令不再需要以明文形式通過網(wǎng)絡傳輸。通過使用加密密鑰,它使單點登錄到遠程 DB2 服務器成為可能。以下示意圖展示了 Kerberos 身份驗證在 DB2 中的工作原理。

圖3

DB2 客戶機和服務器均支持 Kerberos 安全協(xié)議時,即可使用 KERBEROS 身份驗證類型。某些客戶機可能并不支持 Kerberos,但依然需要訪問 DB2 服務器。為確保所有類型的客戶機均能安全地連接,將 DB2 服務器的身份驗證類型設置為 KRB_SERVER_ENCRYPT。這將允許所有啟用了 Kerberos 的客戶機使用 Kerberos 進行身份驗證,而其他客戶機則使用 SERVER_ENCRYPT 身份驗證。下面給出了與 Kerberos 相關的不同的客戶機與服務器身份驗證設置摘要。

圖4

在客戶機上進行身份驗證

這一選項允許在客戶機上進行身份驗證。用戶成功登錄到客戶機后,即可輕松連接到數(shù)據(jù)庫,而無需再次提供口令。

圖5

這里有一個重要問題需要理解:存在不具有可靠的安全性設施的客戶機系統(tǒng),例如 Windows 9x 和 Classic Mac OS。它們叫做不受信任的客戶機。任何人只要可以訪問這些系統(tǒng),就可以不經過身份驗證直接連接到 DB2 服務器。誰知道他們會執(zhí)行怎樣的破壞性操作(例如,刪除一個數(shù)據(jù)庫)?為提供允許受信任的客戶機自行執(zhí)行身份驗證、同時強制不受信任的客戶機在服務器處進行身份驗證的靈活性,引入了另外兩種數(shù)據(jù)庫管理器配置參數(shù):

TRUST_ALLCLNTS
TRUST_CLNTAUTH

這兩個參數(shù)僅在身份驗證設置為 CLIENT 時被評估。DB2

信任客戶機

TRUST_ALLCLNTS 確定信任哪種類型的客戶機。參數(shù)有以下可能值:

◆YES

信任所有客戶機。這是默認設置。身份驗證將在客戶機處執(zhí)行。但有一個例外,我們將在介紹 TRUST_CLNTAUTH 時更詳細地予以討論。

◆NO

僅信任具備可靠的安全性設施的客戶機(受信任的客戶機)。若不受信任的客戶機連接,則必須提供用戶 ID 和口令,以便在服務器進行身份驗證。

◆DRDAONLY

僅信任在 iSeries 或 zSeries 平臺上運行的客戶機(例如,DRDA 客戶機)。其他任何客戶機都必須提供用戶 ID 和口令。

設想一個場景,DB2 服務器將身份驗證設置為 CLIENT、TRUST_ALLCLNTS 設置為 YES。您作為 localuser 登錄到一臺 Windows 2000 計算機,并在未指定用戶 ID 和口令的情況下連接到遠程數(shù)據(jù)庫。那么 localuser 將成為數(shù)據(jù)庫處的連接授權 ID。而如果您想使用其他用戶 ID 連接到數(shù)據(jù)庫(例如,有執(zhí)行數(shù)據(jù)庫備份權限的 poweruser),又會怎么樣呢?

為允許此類行為,可使用 TRUST_CLNTAUTH 來指定,當在 connect 語句或 attach 命令中提供了用戶 ID 和密碼時將在何處進行身份驗證。允許使用的值有兩個:

◆CLIENT

身份驗證在客戶機處執(zhí)行,不需要用戶 ID 和口令。

◆SERVER

身份驗證在服務器處完成,需要提供用戶 ID 和口令。

讓我們來看一些演示參數(shù)用法的示例:

圖6  #p#

設置權限級別

權限級別控制執(zhí)行數(shù)據(jù)庫管理器維護操作和管理數(shù)據(jù)庫對象的能力。在 DB2 中共有 5 種權限:

圖7

SYSADM

具有管理實例的完整特權,還可訪問底層數(shù)據(jù)庫中的數(shù)據(jù)。

SYSCTRL 和 SYSMAINT

擁有管理實例、其數(shù)據(jù)庫和數(shù)據(jù)庫對象的特定特權。這些權限不含 訪問數(shù)據(jù)的權限。例如,像 'SELECT * FROM mytable' 或 'DELETE FROM mytable' 這樣的語句是不允許的。

DBADM

擁有在特定數(shù)據(jù)庫上執(zhí)行管理任務的特權。還具有數(shù)據(jù)庫的完整數(shù)據(jù)訪問權限。

LOAD

擁有對指定數(shù)據(jù)庫運行加載實用工具的特權。

下表總結了各權限可執(zhí)行的功能。

圖8

管理 DB2 權限

SYS* 權限是在數(shù)據(jù)庫管理器配置中設置的,通過將操作系統(tǒng)或安全性設施中定義的用戶組指派給關聯(lián)的參數(shù)進行設置。它必須是最大長度為 8 個字符的組名稱,如下所示。

圖9

DBADM 和 LOAD 是數(shù)據(jù)庫級的權限。使用 grant 語句可授予用戶或用戶組這些權限,使用 revoke 語句可予以撤銷權限:

connect to sample;
grant dbadm on database to user john;
grant load on database to group dbagrp;
revoke load on database from group dbagrp;

請注意,具有 LOAD 權限的用戶也需要表上的 INSERT 特權,之后才能加載數(shù)據(jù)。下一節(jié)將討論特權。

設置特權

特權給予用戶通過特定方式訪問數(shù)據(jù)庫對象的權力。如下列表給出了不同數(shù)據(jù)庫對象的特權摘要。

數(shù)據(jù)庫特權

CONNECT 允許用戶連接數(shù)據(jù)庫。

BINDADD 允許用戶在數(shù)據(jù)庫中創(chuàng)建新包。

CREATETAB 允許用戶在數(shù)據(jù)庫中創(chuàng)建新表。

CREATE_NOT_FENCED 允許用戶創(chuàng)建非 fenced 用戶定義的函數(shù)或存儲過程。

IMPLICIT_SCHEMA 允許用戶在尚不存在的模式中創(chuàng)建對象。 QUIESCE_CONNECT 允許用戶在數(shù)據(jù)庫停頓時訪問數(shù)據(jù)庫。

CREATE_EXTERNAL_ROUTINE 允許用戶創(chuàng)建以 C 語言、Java™ 語言、OLD 和 COBOL 編寫的存儲過程。

模式特權

CREATEIN 允許用戶在模式內創(chuàng)建對象。

ALTERIN 允許用戶更改模式內的對象。

DROPIN 允許用戶刪除模式內的對象。

要顯式地創(chuàng)建新模式,可使用 create schema 命令:

connect to sample user dbowner;create schema dev authorization devuser; 

空間特權

USE OF TABLESPACE 允許用戶在特定表空間內創(chuàng)建表。這一特權無法用于 SYSCATSPACE 或任何系統(tǒng)臨時表空間。

表與視圖特權

CONTROL 為用戶提供表或視圖的所有特權,以及將這些特權(除 CONTROL 以外)授予他人的能力。

ALTER 允許用戶更改表或視圖。

DELETE 允許用戶刪除表或視圖中的記錄。

INDEX 允許用戶在表上創(chuàng)建索引。

INSERT 允許用戶向表或視圖中插入條目。

REFERENCES 允許用戶創(chuàng)建和刪除外鍵,將表指定為關系中的父表。

SELECT 允許用戶從表或視圖中檢索行。

UPDATE 允許用戶在表或視圖中更新條目。這一特權還可將用戶約束為僅更新特定列: grant update (workdept, job) on table employee to devuser;

ALL PRIVILEGES 授予用戶表或視圖上的上述全部特權(除 CONTROL 外)。

包特權

CONTROL 為用戶提供了重新綁定、刪除或執(zhí)行一個包的能力,以及將這些特權(除CONTROL以外)授予他人的能力。

BIND 允許用戶重新綁定現(xiàn)有包。

EXECUTE 允許用戶執(zhí)行包。

索引特權

CONTROL 允許用戶刪除索引。

例程特權

EXECUTE 允許用戶執(zhí)行用戶定義的函數(shù)。

順序特權

USAGE 允許用戶為順序對象使用 NEXTVAL 和 PREVVAL 表達式。

授予顯式特權

授予特權 with grant option 允許授權 ID 將特定特權擴展給他人。該選項僅對包、例程、模式、表、表空間和視圖可用。

盡管特權的授予是可擴展的,但撤銷特權并非如此。若通過 with grant option 獲得了特權,用戶不能撤銷他人的特權。示例如下。

該語句允許 john 在表 employee 上執(zhí)行 select、update 或 delete 操作,并可將這些特權授予他人:

該語句允許 devusers 組中的用戶重新綁定、刪除及執(zhí)行包 dev.pkg1。同一組的用戶還可將 BIND 和 EXECUTE(但不包括 CONTROL)特權授予他人。

授予隱式及間接特權

典型情況下,DB2 特權是通過 grant 語句顯式授予的,方法如前所述。有時用戶可能還要隱式或間接地通過執(zhí)行的特定操作獲得特權。讓我們來看一些場景。

被授予 DBADM 權限的用戶還被隱式地授予 BINDADD、CONNECT、CREATETAB、CREATE_NOT_FENCED 和 IMPLICIT_SCHEMA 權限。

當用戶創(chuàng)建數(shù)據(jù)庫時:

◆DBADM 權限將被授予數(shù)據(jù)庫創(chuàng)建者。

◆CONNECT、CREATETAB、BINDADD 和 IMPLICIT_SCHEMA 特權將被授予 PUBLIC。

◆USERSPACE1 表空間上的 USE OF TABLESPACE 特權將被授予 PUBLIC。

◆各成功綁定實用工具上的 BIND 和 EXECUTE 特權將被授予 PUBLIC。

grant select, update, delete on table employee to user johnwith grant option 

◆SYSFUN 模式中所有函數(shù)的 EXECUTE 特權 with grant option 將被授予 PUBLIC。

grant control on package dev.pkg1 to group devuserswith grant option 

創(chuàng)建表、視圖、索引、模式或包的用戶將自動獲得他/她所創(chuàng)建的數(shù)據(jù)庫對象上的 CONTROL 特權。

當用戶執(zhí)行一個包含靜態(tài) SQL 語句的包時,語句中所引用的數(shù)據(jù)庫對象的顯式特權是不需要的。用戶僅需要包上的 EXECUTE 特權來執(zhí)行語句。但這并不表示該用戶有權直接訪問底層數(shù)據(jù)庫對象。考慮以下示例:

【編輯推薦】

  1. IBM DB2 rec2xml遠程緩沖區(qū)溢出漏洞
  2. IBM DB2共享庫注入漏洞
責任編輯:許鳳麗 來源: IT專家網(wǎng)
相關推薦

2010-05-07 15:52:28

ibmdwDB2

2010-08-17 17:29:06

DB2性能優(yōu)化

2010-08-26 16:15:25

DB2數(shù)據(jù)庫管理

2010-08-27 10:13:09

DB2服務器安裝

2009-07-06 17:34:26

遠程復制DB2

2010-08-25 10:50:48

DB2數(shù)據(jù)庫

2011-03-11 16:02:03

DB2數(shù)據(jù)庫安裝

2010-08-26 10:37:40

DB2Q復制

2010-09-06 14:39:06

DB2 9

2010-11-01 11:30:41

DB2數(shù)據(jù)庫權限

2010-09-30 11:49:21

DB2數(shù)據(jù)庫權限

2010-11-03 16:21:18

DB2數(shù)據(jù)庫授權

2011-03-25 15:39:47

DB2 9數(shù)據(jù)庫

2010-08-25 15:28:16

DB2服務器

2010-08-27 16:06:26

DB2服務器

2010-11-02 11:49:18

SQL SERVER連

2010-08-31 13:06:49

DB2數(shù)據(jù)庫

2010-08-31 11:26:59

DB2數(shù)據(jù)庫

2010-11-03 16:32:10

DB2創(chuàng)建數(shù)據(jù)庫

2010-08-17 16:24:32

IBM DB2數(shù)據(jù)庫
點贊
收藏

51CTO技術棧公眾號