日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
DB29數(shù)據(jù)庫服務(wù)器管理之DB2安全性

DB2安全性概述

DB2安全性是通過組合外部安全性服務(wù)與內(nèi)部 DB2 授權(quán)機(jī)制來處理的。外部安全性服務(wù)對(duì)希望訪問 DB2 服務(wù)器的用戶進(jìn)行身份驗(yàn)證,DB2 外部的安全性軟件負(fù)責(zé)處理身份驗(yàn)證。該軟件可以是操作系統(tǒng)的安全性設(shè)施,也可是 Kerberos 等獨(dú)立產(chǎn)品。成功校驗(yàn)了用戶 ID 和口令后,內(nèi)部 DB2 進(jìn)程將接管控制,并確保用戶有權(quán)執(zhí)行所請(qǐng)求的操作。

圖1

身份驗(yàn)證類型

身份驗(yàn)證類型確定在何處驗(yàn)證用戶 ID/口令對(duì)。所支持的身份驗(yàn)證類型有:

SERVER(默認(rèn)) 
SERVER_ENCRYPT 
KERBEROS 
KRB_SERVER_ENCRYPT 
CLIENT

身份驗(yàn)證類型是在服務(wù)器和客戶機(jī)處同時(shí)設(shè)置的。

服務(wù)器

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

manager configuration authentication auth_type

客戶機(jī)

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

使用 SERVER 選項(xiàng)進(jìn)行身份驗(yàn)證

DB2 catalog database db_name at node node_nameauthentication auth_type

使用 SERVER 選項(xiàng)時(shí),用戶 ID 和口令將發(fā)送到服務(wù)器進(jìn)行校驗(yàn)??紤]以下示例。

圖2

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

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

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

4、db2user 和 db2pwd 在 DB2 服務(wù)器上校驗(yàn)。

若您想保護(hù)用戶 ID 和口令免于被竊聽,可使用身份驗(yàn)證類型 SERVER_ENCRYPT,這樣用戶 ID 和口令就都會(huì)被加密。

使用 Kerberos 進(jìn)行身份驗(yàn)證

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

圖3

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

圖4

在客戶機(jī)上進(jìn)行身份驗(yàn)證

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

圖5

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

TRUST_ALLCLNTS
TRUST_CLNTAUTH

這兩個(gè)參數(shù)僅在身份驗(yàn)證設(shè)置為 CLIENT 時(shí)被評(píng)估。DB2

信任客戶機(jī)

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

◆YES

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

◆NO

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

◆DRDAONLY

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

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

為允許此類行為,可使用 TRUST_CLNTAUTH 來指定,當(dāng)在 connect 語句或 attach 命令中提供了用戶 ID 和密碼時(shí)將在何處進(jìn)行身份驗(yàn)證。允許使用的值有兩個(gè):

◆CLIENT

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

◆SERVER

身份驗(yàn)證在服務(wù)器處完成,需要提供用戶 ID 和口令。

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

圖6  #p#

設(shè)置權(quán)限級(jí)別

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

圖7

SYSADM

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

SYSCTRL 和 SYSMAINT

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

DBADM

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

LOAD

擁有對(duì)指定數(shù)據(jù)庫運(yùn)行加載實(shí)用工具的特權(quán)。

下表總結(jié)了各權(quán)限可執(zhí)行的功能。

圖8

管理 DB2 權(quán)限

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

圖9

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

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

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

設(shè)置特權(quán)

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

數(shù)據(jù)庫特權(quán)

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

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

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

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

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

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

模式特權(quán)

CREATEIN 允許用戶在模式內(nèi)創(chuàng)建對(duì)象。

ALTERIN 允許用戶更改模式內(nèi)的對(duì)象。

DROPIN 允許用戶刪除模式內(nèi)的對(duì)象。

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

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

空間特權(quán)

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

表與視圖特權(quán)

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

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

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

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

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

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

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

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

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

包特權(quán)

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

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

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

索引特權(quán)

CONTROL 允許用戶刪除索引。

例程特權(quán)

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

順序特權(quán)

USAGE 允許用戶為順序?qū)ο笫褂?NEXTVAL 和 PREVVAL 表達(dá)式。

授予顯式特權(quán)

授予特權(quán) with grant option 允許授權(quán) ID 將特定特權(quán)擴(kuò)展給他人。該選項(xiàng)僅對(duì)包、例程、模式、表、表空間和視圖可用。

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

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

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

授予隱式及間接特權(quán)

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

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

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

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

◆CONNECT、CREATETAB、BINDADD 和 IMPLICIT_SCHEMA 特權(quán)將被授予 PUBLIC。

◆USERSPACE1 表空間上的 USE OF TABLESPACE 特權(quán)將被授予 PUBLIC。

◆各成功綁定實(shí)用工具上的 BIND 和 EXECUTE 特權(quán)將被授予 PUBLIC。

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

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

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

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

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

【編輯推薦】

  1. IBM DB2 rec2xml遠(yuǎn)程緩沖區(qū)溢出漏洞
  2. IBM DB2共享庫注入漏洞

網(wǎng)站題目:DB29數(shù)據(jù)庫服務(wù)器管理之DB2安全性
文章源于:http://www.dlmjj.cn/article/dpeeghd.html