偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

DB2安全性概述

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

圖1

身份驗證類型

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

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

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

服務(wù)器

每個實例僅允許一種類型的身份驗證,也就是說,設(shè)置適用于該實例下定義的所有數(shù)據(jù)庫。在數(shù)據(jù)庫管理器配置文件中使用 AUTHENTICATION 參數(shù)指定該設(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ā)送到服務(wù)器進行校驗。考慮以下示例。

圖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ù)器上校驗。

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

使用 Kerberos 進行身份驗證

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

圖3

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

圖4

在客戶機上進行身份驗證

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

圖5

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

TRUST_ALLCLNTS
TRUST_CLNTAUTH

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

信任客戶機

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

◆YES

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

◆NO

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

◆DRDAONLY

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

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

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

◆CLIENT

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

◆SERVER

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

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

圖6  #p#

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

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

圖7

SYSADM

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

SYSCTRL 和 SYSMAINT

擁有管理實例、其數(shù)據(jù)庫和數(shù)據(jù)庫對象的特定特權(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

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

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

圖8

管理 DB2 權(quán)限

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

圖9

DBADM 和 LOAD 是數(shù)據(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;

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

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

特權(quán)給予用戶通過特定方式訪問數(shù)據(jù)庫對象的權(quán)力。如下列表給出了不同數(shù)據(jù)庫對象的特權(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ù)或存儲過程。

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

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

模式特權(quán)

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

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

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

要顯式地創(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)臨時表空間。

表與視圖特權(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í)行一個包的能力,以及將這些特權(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)擴展給他人。該選項僅對包、例程、模式、表、表空間和視圖可用。

盡管特權(quán)的授予是可擴展的,但撤銷特權(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 語句顯式授予的,方法如前所述。有時用戶可能還要隱式或間接地通過執(zhí)行的特定操作獲得特權(quán)。讓我們來看一些場景。

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

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

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

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

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

◆各成功綁定實用工具上的 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)建表、視圖、索引、模式或包的用戶將自動獲得他/她所創(chuàng)建的數(shù)據(jù)庫對象上的 CONTROL 特權(quán)。

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

【編輯推薦】

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

2010-05-07 15:52:28

ibmdwDB2

2010-08-26 16:15:25

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

2010-08-27 10:13:09

DB2服務(wù)器安裝

2010-08-17 17:29:06

DB2性能優(yōu)化

2009-07-06 17:34:26

遠(yuǎn)程復(fù)制DB2

2010-08-26 10:37:40

DB2Q復(fù)制

2010-11-01 11:30:41

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

2010-09-30 11:49:21

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

2010-11-03 16:21:18

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

2011-03-25 15:39:47

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

2010-08-25 10:50:48

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

2011-03-11 16:02:03

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

2010-08-25 15:28:16

DB2服務(wù)器

2010-08-27 16:06:26

DB2服務(wù)器

2010-09-06 14:39:06

DB2 9

2010-08-17 16:24:32

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

2011-03-16 14:50:58

DB2管理超級可用性

2010-11-01 09:17:40

DB2管理服務(wù)器

2009-12-16 10:48:42

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

2011-05-16 14:42:12

DB2數(shù)據(jù)庫實用操作
點贊
收藏

51CTO技術(shù)棧公眾號