經濟學第六章-DB2存取控制課件_第1頁
經濟學第六章-DB2存取控制課件_第2頁
經濟學第六章-DB2存取控制課件_第3頁
經濟學第六章-DB2存取控制課件_第4頁
經濟學第六章-DB2存取控制課件_第5頁
已閱讀5頁,還剩44頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第六章 DB2存取控制DB2存取控制 安全策略DB2認證DB2權限DB2特權數(shù)據(jù)庫安全性考慮允許誰訪問實例和數(shù)據(jù)庫在何處以及如何驗證用戶的密碼授予用戶的權限級別允許用戶運行的命令允許用戶對數(shù)據(jù)所做的操作允許用戶對數(shù)據(jù)庫對象所作的操作DB2安全機制認證(Authentication) 核實用戶身份,典型的手段是要求用戶提供用戶名和口令。這個過程由DB2之外的安全機制負責。這些安全設施通常包括:操作系統(tǒng)的安全機制,以及第三方的安全產品。 權限(Authority) 是一種高層次的用戶權力,通常授予需要對數(shù)據(jù)庫和實例進行管理和維護的用戶。權限主要用于對實例內部對象的存取,控制用戶是否能夠執(zhí)行某項管理

2、任務。特權(Privilege) 是針對數(shù)據(jù)庫對象的用戶權力,通常授予只需對數(shù)據(jù)庫對象進行存取的用戶,用來控制他們對數(shù)據(jù)庫對象的存取。DB2認證簡介DB2認證控制著數(shù)據(jù)庫安全性計劃的下列幾個方面:允許誰訪問實例和/或數(shù)據(jù)庫在何處/如何驗證用戶的密碼需要進行DB2認證過程的命令:ATTACH(連接實例)CONNECT(連接數(shù)據(jù)庫)如果在使用Attach和Connect命令的時候,沒有提供用戶名和口令,系統(tǒng)將會使用用戶在登錄操作系統(tǒng)時所使用的用戶名和口令進行認證,認證的過程是由DB2之外的安全設施來進行的。DB2支持的認證類型 認證類型即如何進行認證以及在何處進行認證。DB2支持的認證類型包括:類

3、 型描 述server在服務器上進行認證。 serverencrypt在服務器上進行認證。在將口令(密碼)發(fā)送給服務器之前,先在客戶機上對口令(密碼)進行加密。 client在客戶機機器上進行認證。 kerberos認證由 kerberos 安全性軟件執(zhí)行。 krbserverencrypt如果客戶機設置為 kerberos,則認證由 kerberos 安全性軟件執(zhí)行。否則,就使用 server_encrypt 。在服務器上設置認證 認證類型可以設置在DB2服務器端和DB2客戶端。 如果要在數(shù)據(jù)庫服務器上設置認證類型,可通過設置數(shù)據(jù)庫管理器配置參數(shù)authentication實現(xiàn)。該參數(shù)為實例

4、級參數(shù),因此實例中所有數(shù)據(jù)庫都會受到該參數(shù)設置的影響。 db2 updata dbm cfg using authentication server_encrypydb2stopdb2start在客戶機上設置認證 對于連接到非主機數(shù)據(jù)庫的客戶機,可通過catalog database命令設置認證類型??蛻魴C的認證設置必須匹配客戶機所連接的數(shù)據(jù)庫服務器的認證設置。db2 catalog database sample at node nd1 authentication server在客戶機上設置認證 當服務器將認證類型設置成Client的時候,希望由客戶端代替服務器端進行認證。但最終認證類型是

5、否在客戶端進行還要由兩個因素決定:一是客戶端的受信任程度;第二是數(shù)據(jù)庫管理器配置文件中的兩個參數(shù)。TRUST_ALLCLNTSTRUST_CLNTAUTH客戶機的信任程度 根據(jù)客戶機操作系統(tǒng)提供的安全機制,把客戶機分成以下三類:不可信的客戶機:運行在Windows98/ME操作系統(tǒng)上的客戶機。主機客戶機:運行在類似OS/390這樣的主機操作系統(tǒng)上的客戶機??尚诺目蛻魴C:運行在Windows NT,Windows2000,Unix等具備完備的安全機制的操作系統(tǒng)上的客戶端 。TRUSTALLCLNTS 該參數(shù)確定是否信任所有客戶端,指定是否所有的客戶端都可以對用戶進行驗證。取值作 用 YES參數(shù)缺

6、省值。迫使所有的客戶端(包括不受信任的客戶端)對用戶進行驗證。NO 所有不受信任的客戶端將在服務器端進行驗證,在連接時必須提供用戶名和口令。所有受信任的客戶端將在客戶端進行用戶驗證。DRDAONLY只有MVS、OS/390、VM、VSE和OS/400系統(tǒng)上的DB2客戶端可以代表數(shù)據(jù)庫服務器進行用戶驗證。TRUSTCLNTAUTH 該參數(shù)用來設定當用戶進行實例或數(shù)據(jù)庫連接的時候,如果提供了用戶名和口令,則認證過程會在什么地方發(fā)生。 取 值 作 用client驗證過程將在客戶端進行。如果連接時沒有提供用戶名和口令,系統(tǒng)將自動使用用戶登錄到客戶端操作系統(tǒng)時提供的用戶名和口令進行驗證。server驗證

7、過程將在服務器端進行思考:如果要讓所有的認證過程都在客戶端完成,該如何設置相關參數(shù)?除了服務器端的認證類型要設置成client之外,還要將trust_allclnts參數(shù)設置為yes。trust_clntauth參數(shù)設置為client。 DB2權限簡介 用戶通過了認證,DB2內部的安全機制將會控制用戶對數(shù)據(jù)庫系統(tǒng)的存取,這種存取控制主要是通過為用戶指定某些權限或者特權來決定的。 DB2權限控制數(shù)據(jù)庫安全性計劃的以下幾方面:授予用戶的權限級別允許用戶運行的命令允許用戶讀和修改的數(shù)據(jù)允許用戶創(chuàng)建、修改和刪除的數(shù)據(jù)庫對象SYSADM權限 SYSADM權限是DB2系統(tǒng)中最高級別的權限。對某個實例具備S

8、YSADM權限的用戶能夠對該實例以及實例內的任何數(shù)據(jù)庫執(zhí)行任何DB2操作,還能夠訪問數(shù)據(jù)庫內的數(shù)據(jù),并能夠授予或取消特權和權限。SYSADM用戶是唯一允許更新DBM配置文件的用戶。 如果要賦予某個用戶SYSADM權限,必須將該用戶添加到相應的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSADM_GROUP的參數(shù)值為該用戶組的名稱。 db2 update dbm cfg using SYSADM_GROUP grp111SYSCTRL權限SYSCTRL是比SYSADM低一級的實例級用戶權限,SYSCTRL允許用戶執(zhí)行大多數(shù)的數(shù)據(jù)庫管理和維護任務,但是缺省情況下,具有該權限的用戶不能存取數(shù)據(jù)庫對象

9、,不過,SYSCTRL權限具有創(chuàng)建數(shù)據(jù)庫的權力,對于自己創(chuàng)建的數(shù)據(jù)庫中的數(shù)據(jù)庫對象,SYSCTRL用戶具有絕對的控制權。要賦予某個用戶SYSCTRL權限,必須將該用戶添加到相應的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSCTRL_GROUP的值為該用戶組名稱。SYSCTRL權限 SYSCTRL用戶可以對實例內的任何數(shù)據(jù)庫執(zhí)行的命令有:DB2start/db2stopdb2 create/drop databasedb2 create/drop tablespacedb2 backup/restore/rollforward databasedb2 runstats(可以對任何表執(zhí)行該命令)

10、db2 update db cfg for database dbnameSYSMAINT權限 SYSMAINT權限是比SYSCTRL低一級的實例級權限。SYSMAINT權限允許用戶執(zhí)行系統(tǒng)的維護工作,具有該權限的用戶在缺省情況下不能創(chuàng)建數(shù)據(jù)庫。要賦予某個用戶SYSMAINT權限,必須將該用戶添加到相應的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSMAINT _GROUP的值為該用戶組名稱。 具有SYSMAINT權限的用戶可以發(fā)出的命令是具有SYSCTRL權限的用戶所允許發(fā)出的命令的子集。 SYSMAINT用戶只能執(zhí)行與維護有關的任務,例如:db2start/db2stopdb2 backu

11、p/restore/rollforward databasedb2 runstats(可以對任何表執(zhí)行該命令)db2 update db cfg for database dbnameSYSMAINT權限DBADM權限 DBADM權限是一種數(shù)據(jù)庫級權限而不是實例級權限,是數(shù)據(jù)庫級別的最高權限。 DBADM權限對于數(shù)據(jù)庫中的數(shù)據(jù)庫對象具有絕對的控制權,還可以將數(shù)據(jù)庫對象上的相應特權賦予其它用戶。要賦予某個用戶DBADM權限,必須由該數(shù)據(jù)庫所在實例上具有SYSADM權限的用戶通過grant命令來授予。DBADM用戶不能執(zhí)行下列任務:drop databasedrop/create tablespa

12、cebackup/restore databaseupdate db cfg for database db nameLOAD權限 Load權限是一種比較特殊的數(shù)據(jù)庫級別的權限。因為該權限只是專門針對Load操作這樣一個任務而設定的。擁有該權限的用戶可以在不具備SYSADM或者DBADM權限的情況下完成Load操作。 如果想賦予某個用戶Load權限,必須由具有SYSADM或者DBADM權限的用戶通過grant命令來授予。 db2 grant load on database to user tst1 db2 grant insert on table sales to user tst1具有L

13、OAD權限的用戶可以運行下列命令:db2 quiesce tablespace for tabledb2 list tablespacedb2 runstats(任何表)db2 load insert(必須對表具有插入特權)db2 load restart/terminate after load insert(必須對表具有插入特權)db2 load replace(必須對表具有插入和刪除特權)db2 load restart/terminate after load replace(必須對表具有插入和刪除特權)LOAD權限DB2特權特權是創(chuàng)建和存取數(shù)據(jù)庫對象的能力。 按功能點劃分擁有者特權(

14、control特權)個體特權隱式特權按范圍劃分數(shù)據(jù)庫級別特權對象級別特權擁有者特權 又稱為控制權,如果用戶在某個數(shù)據(jù)庫對象上擁有這種特權,該用戶就可以對該對象擁有全面的控制,既可以存取該對象,也可以將該對象上的特權賦予其它用戶。 通常情況下,數(shù)據(jù)庫對象的創(chuàng)建者會自動擁有該對象的擁有者特權。DB2特權個體特權這類特權允許用戶對數(shù)據(jù)庫對象進行特定操作,比如一個用戶擁有了某個表上的select特權,該用戶就可以對該表進行select操作。 隱式特權這種特權是指由于用戶執(zhí)行了某些操作或被授予了更高級別的權限和特權的時候,DB2自動授予該用戶的特權。 DB2特權數(shù)據(jù)庫特權數(shù)據(jù)庫BINDADDIMPLIC

15、IT_SHCEMACREATE_NOT_FENCEDCONNECTCREATETABLOADQUIESCE_CONNECTCREATE_EXTERNAL_ROUTINE數(shù)據(jù)庫特權描 述 CREATETAB用戶可以在數(shù)據(jù)庫內創(chuàng)建表BINDADD用戶可以使用 BIND 命令在數(shù)據(jù)庫內創(chuàng)建程序包CONNECT用戶可以連接到數(shù)據(jù)庫CREATE_NOT_FENCED用戶可以創(chuàng)建非隔離的、由用戶定義的函數(shù)(UDF) IMPLICIT_SCHEMA用戶可以不使用 CREATE SCHEMA 命令而在數(shù)據(jù)庫內隱式地創(chuàng)建模式LOAD用戶可以將數(shù)據(jù)裝入到表中QUIESCE_CONNECT用戶可以在數(shù)據(jù)庫處于停頓狀

16、態(tài)時訪問數(shù)據(jù)庫CREATE_EXTERNAL_ROUTINE用戶可以創(chuàng)建一個外部例程(UDF、存儲過程等),供應用程序和數(shù)據(jù)庫的其他用戶使用數(shù)據(jù)庫特權數(shù)據(jù)庫對象特權CONTROL (視圖)ALLDELETEINSERTSELECTUPDATEALLALTERDELETEINDEXINSERTREFERENCESSELECTUPDATECONTROL (表)CONTROL (索引)ALTERINCREATEINDROPIN (模式)CONTROL (別名)CONTROL (表空間)CONTROL (程序包)BINDEXECUTEUSEALLALTERINDEXREFERENCES數(shù)據(jù)庫對象數(shù)據(jù)庫

17、對象特權特權名稱相關對象描 述CONTROL表、視圖、索引、包、別名、單值類型、用戶定義的函數(shù)和序列提供對象的所有權限。在數(shù)據(jù)庫對象創(chuàng)建時自動分配給對象的創(chuàng)建者。具有此特權的用戶還將該對象上的特權授予其他用戶或者取消這些特權。DELETE表和視圖允許用戶從對象刪除記錄。INSERT表和視圖允許用戶借助 INSERT 或 IMPORT 命令將記錄插入對象。SELECT表和視圖提供使用 select 語句查看對象內容的能力UPDATE表和視圖允許用戶使用 update 語句修改對象內的記錄。ALTER表允許用戶使用 alter 語句修改對象定義。數(shù)據(jù)庫對象特權特權名稱相關對象描 述INDEX表允許

18、用戶使用 create index 語句在對象上創(chuàng)建索引。REFERENCES表提供在對象上創(chuàng)建或刪除外鍵約束的能力。BIND包允許用戶重新聯(lián)編現(xiàn)有的包。EXECUTE包、過程、函數(shù)和方法允許用戶執(zhí)行包和例程。ALTERIN模式允許用戶修改模式內的對象定義。CREATEIN模式允許用戶在模式內創(chuàng)建對象。DROPIN模式允許用戶刪除模式內的對象??刂茖?shù)據(jù)庫對象的存取 控制授權有3種方式: 通過使用GRANT和REVOKE語句進行顯式授權 通過創(chuàng)建和撤消對象進行隱式授權與程序包有關的間接特權顯式授權授予特權 可以通過GRANT語句進行顯式授權。GRANT privilege ON object-

19、type object-name TO USER | GROUP | PUBLIC authorization-name WITH GRANT OPTIONWITH GRANT OPTION使獲得授權的用戶能夠將獲得的特權授予其他用戶。示例將employee表的select特權授予用戶heron,并且heron能將獲得的特權授予其它用戶。 grant select on employee to user heron with grant option將employee表的select特權授予組heron grant select on employee to group heron 要授予對大

20、多數(shù)數(shù)據(jù)庫對象的特權,用戶必須對該對象具有SYSADM權限、DBADM權限或CONTROL特權,或者用戶必須持有使用 WITH GRANT OPTION授予的特權。 要將CONTROL特權授予其它用戶,該用戶必須具有SYSADM或DBADM權限;要授予DBADM特權,用戶必須具有SYSADM權限。顯式授權授予特權顯式授權撤銷特權 REVOKE語句允許特許用戶撤銷先前授予其他用戶的特權。 REVOKE privilege ON object-type object-name FROM USER | GROUP | PUBLIC authorization-name 要撤銷賦予數(shù)據(jù)庫對象的特權,必

21、須對該對象具有DBADM權限、SYSADM權限或CONTROL特權。要撤銷CONTROL特權,必須具有SYSADM或DBADM權限;要撤銷DBADM權限,必須具有SYSADM權限。 如果已經把一個特權授予有相同名稱的一個用戶和一個組,當撤銷此特權時必須指定group或user關鍵字。從用戶heron撤銷多employee表的select特權 revoke select on employee from user heron從組heron撤銷多employee表的select特權 revoke select on employee from group heron示例用戶、用戶組和PUBLICD

22、B2用戶一定是操作系統(tǒng)用戶;PUBLIC是特殊的DB2用戶組,代表所有DB2用戶;在大多數(shù)情況下,一個用戶擁有的特權等于授予該用戶的特權、授予該用戶所在用戶組的特權以及授予PUBLIC的特權三者的并集。隱式特權隱式特權是在用戶執(zhí)行某些操作(通常是創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫對象以及被授予某些高級別權力)時,自動授予用戶的特權。當所創(chuàng)建的對象被刪除時,這些特權也會被隱式地取消。但在顯式取消更高級別特權時,這些隱式特權卻不會被隱式地取消。隱式特權示例(一) 創(chuàng)建數(shù)據(jù)庫時,系統(tǒng)隱式授予的特權有:授予數(shù)據(jù)庫的創(chuàng)建者BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE

23、、CREATE_NOT_FENCED_ROUNTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT特權授予PUBLIC組BINDADD、CREATETAB、CONNECT和IMPLICIT_SCHEMA特權授予PUBLIC組系統(tǒng)編目表和系統(tǒng)編目視圖上的SELECT特權授予PUBLIC組USERSPACE1的USE特權.隱式特權示例(二)SYSADM授予某用戶DBADM權限的時候,系統(tǒng)隱式發(fā)生下列授權活動: 同時授予該用戶該數(shù)據(jù)庫上的BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED

24、_ROUTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT特權用戶創(chuàng)建數(shù)據(jù)庫對象時,系統(tǒng)隱式發(fā)生下列授權活動: 同時授予對象創(chuàng)建者該對象上的CONTROL特權。用戶創(chuàng)建視圖時,系統(tǒng)隱式授予視圖創(chuàng)建者的特權不會超出該創(chuàng)建者在基表上擁有的特權。間接特權 間接特權與程序包有關。當用戶執(zhí)行一個涉及某些特權的程序包時,將自動獲得執(zhí)行程序包中包含的靜態(tài)SQL語言所需的權限,不需要顯式授權。例如: 程序包包含對某個表的插入操作,如果用戶具有程序包上的 EXECUTE特權,則該用戶不需要具有該表上的INSERT特權就可以完成插入操作。通過視圖進行安全控制 如果表中存在部分敏感數(shù)據(jù),不能讓特定用戶查看,可以通過視圖進行安全控制:db2 create

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論