版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第六章
DB2存取控制第六章
DB2存取控制1DB2存取控制安全策略DB2認(rèn)證DB2權(quán)限D(zhuǎn)B2特權(quán)DB2存取控制安全策略2數(shù)據(jù)庫安全性考慮允許誰訪問實(shí)例和數(shù)據(jù)庫在何處以及如何驗(yàn)證用戶的密碼授予用戶的權(quán)限級(jí)別允許用戶運(yùn)行的命令允許用戶對(duì)數(shù)據(jù)所做的操作允許用戶對(duì)數(shù)據(jù)庫對(duì)象所作的操作數(shù)據(jù)庫安全性考慮允許誰訪問實(shí)例和數(shù)據(jù)庫3DB2安全機(jī)制認(rèn)證(Authentication)核實(shí)用戶身份,典型的手段是要求用戶提供用戶名和口令。這個(gè)過程由DB2之外的安全機(jī)制負(fù)責(zé)。這些安全設(shè)施通常包括:操作系統(tǒng)的安全機(jī)制,以及第三方的安全產(chǎn)品。權(quán)限(Authority)是一種高層次的用戶權(quán)力,通常授予需要對(duì)數(shù)據(jù)庫和實(shí)例進(jìn)行管理和維護(hù)的用戶。權(quán)限主要用于對(duì)實(shí)例內(nèi)部對(duì)象的存取,控制用戶是否能夠執(zhí)行某項(xiàng)管理任務(wù)。特權(quán)(Privilege)是針對(duì)數(shù)據(jù)庫對(duì)象的用戶權(quán)力,通常授予只需對(duì)數(shù)據(jù)庫對(duì)象進(jìn)行存取的用戶,用來控制他們對(duì)數(shù)據(jù)庫對(duì)象的存取。DB2安全機(jī)制認(rèn)證(Authentication)4DB2認(rèn)證簡(jiǎn)介DB2認(rèn)證控制著數(shù)據(jù)庫安全性計(jì)劃的下列幾個(gè)方面:允許誰訪問實(shí)例和/或數(shù)據(jù)庫在何處/如何驗(yàn)證用戶的密碼需要進(jìn)行DB2認(rèn)證過程的命令:ATTACH(連接實(shí)例)CONNECT(連接數(shù)據(jù)庫)如果在使用Attach和Connect命令的時(shí)候,沒有提供用戶名和口令,系統(tǒng)將會(huì)使用用戶在登錄操作系統(tǒng)時(shí)所使用的用戶名和口令進(jìn)行認(rèn)證,認(rèn)證的過程是由DB2之外的安全設(shè)施來進(jìn)行的。DB2認(rèn)證簡(jiǎn)介DB2認(rèn)證控制著數(shù)據(jù)庫安全性計(jì)劃的下列幾個(gè)方面5DB2支持的認(rèn)證類型
認(rèn)證類型即如何進(jìn)行認(rèn)證以及在何處進(jìn)行認(rèn)證。DB2支持的認(rèn)證類型包括:類型描述server在服務(wù)器上進(jìn)行認(rèn)證。server_encrypt在服務(wù)器上進(jìn)行認(rèn)證。在將口令(密碼)發(fā)送給服務(wù)器之前,先在客戶機(jī)上對(duì)口令(密碼)進(jìn)行加密。client在客戶機(jī)機(jī)器上進(jìn)行認(rèn)證。kerberos認(rèn)證由kerberos安全性軟件執(zhí)行。krb_server_encrypt如果客戶機(jī)設(shè)置為kerberos,則認(rèn)證由kerberos安全性軟件執(zhí)行。否則,就使用server_encrypt。DB2支持的認(rèn)證類型認(rèn)證類型即如何進(jìn)行認(rèn)證以及在何處6在服務(wù)器上設(shè)置認(rèn)證認(rèn)證類型可以設(shè)置在DB2服務(wù)器端和DB2客戶端。如果要在數(shù)據(jù)庫服務(wù)器上設(shè)置認(rèn)證類型,可通過設(shè)置數(shù)據(jù)庫管理器配置參數(shù)authentication實(shí)現(xiàn)。該參數(shù)為實(shí)例級(jí)參數(shù),因此實(shí)例中所有數(shù)據(jù)庫都會(huì)受到該參數(shù)設(shè)置的影響。db2updatadbmcfgusingauthenticationserver_encrypydb2stopdb2start在服務(wù)器上設(shè)置認(rèn)證認(rèn)證類型可以設(shè)置在D7在客戶機(jī)上設(shè)置認(rèn)證對(duì)于連接到非主機(jī)數(shù)據(jù)庫的客戶機(jī),可通過catalogdatabase命令設(shè)置認(rèn)證類型。客戶機(jī)的認(rèn)證設(shè)置必須匹配客戶機(jī)所連接的數(shù)據(jù)庫服務(wù)器的認(rèn)證設(shè)置。db2catalogdatabasesampleatnodend1authenticationserver在客戶機(jī)上設(shè)置認(rèn)證對(duì)于連接到非主機(jī)數(shù)據(jù)8在客戶機(jī)上設(shè)置認(rèn)證當(dāng)服務(wù)器將認(rèn)證類型設(shè)置成Client的時(shí)候,希望由客戶端代替服務(wù)器端進(jìn)行認(rèn)證。但最終認(rèn)證類型是否在客戶端進(jìn)行還要由兩個(gè)因素決定:一是客戶端的受信任程度;第二是數(shù)據(jù)庫管理器配置文件中的兩個(gè)參數(shù)。TRUST_ALLCLNTSTRUST_CLNTAUTH在客戶機(jī)上設(shè)置認(rèn)證當(dāng)服務(wù)器將認(rèn)證類型設(shè)9客戶機(jī)的信任程度根據(jù)客戶機(jī)操作系統(tǒng)提供的安全機(jī)制,把客戶機(jī)分成以下三類:不可信的客戶機(jī):運(yùn)行在Windows98/ME操作系統(tǒng)上的客戶機(jī)。主機(jī)客戶機(jī):運(yùn)行在類似OS/390這樣的主機(jī)操作系統(tǒng)上的客戶機(jī)。可信的客戶機(jī):運(yùn)行在WindowsNT,Windows2000,Unix等具備完備的安全機(jī)制的操作系統(tǒng)上的客戶端。客戶機(jī)的信任程度根據(jù)客戶機(jī)操作系統(tǒng)提10TRUST_ALLCLNTS該參數(shù)確定是否信任所有客戶端,指定是否所有的客戶端都可以對(duì)用戶進(jìn)行驗(yàn)證。取值作用YES參數(shù)缺省值。迫使所有的客戶端(包括不受信任的客戶端)對(duì)用戶進(jìn)行驗(yàn)證。NO所有不受信任的客戶端將在服務(wù)器端進(jìn)行驗(yàn)證,在連接時(shí)必須提供用戶名和口令。所有受信任的客戶端將在客戶端進(jìn)行用戶驗(yàn)證。DRDAONLY只有MVS、OS/390、VM、VSE和OS/400系統(tǒng)上的DB2客戶端可以代表數(shù)據(jù)庫服務(wù)器進(jìn)行用戶驗(yàn)證。TRUST_ALLCLNTS該參數(shù)確定是否信任所有客11TRUST_CLNTAUTH該參數(shù)用來設(shè)定當(dāng)用戶進(jìn)行實(shí)例或數(shù)據(jù)庫連接的時(shí)候,如果提供了用戶名和口令,則認(rèn)證過程會(huì)在什么地方發(fā)生。取值作用client驗(yàn)證過程將在客戶端進(jìn)行。如果連接時(shí)沒有提供用戶名和口令,系統(tǒng)將自動(dòng)使用用戶登錄到客戶端操作系統(tǒng)時(shí)提供的用戶名和口令進(jìn)行驗(yàn)證。server驗(yàn)證過程將在服務(wù)器端進(jìn)行思考:如果要讓所有的認(rèn)證過程都在客戶端完成,該如何設(shè)置相關(guān)參數(shù)?除了服務(wù)器端的認(rèn)證類型要設(shè)置成client之外,還要將trust_allclnts參數(shù)設(shè)置為yes。trust_clntauth參數(shù)設(shè)置為client。TRUST_CLNTAUTH該參數(shù)用來設(shè)定當(dāng)用戶進(jìn)行實(shí)例12DB2權(quán)限簡(jiǎn)介用戶通過了認(rèn)證,DB2內(nèi)部的安全機(jī)制將會(huì)控制用戶對(duì)數(shù)據(jù)庫系統(tǒng)的存取,這種存取控制主要是通過為用戶指定某些權(quán)限或者特權(quán)來決定的。DB2權(quán)限控制數(shù)據(jù)庫安全性計(jì)劃的以下幾方面:授予用戶的權(quán)限級(jí)別允許用戶運(yùn)行的命令允許用戶讀和修改的數(shù)據(jù)允許用戶創(chuàng)建、修改和刪除的數(shù)據(jù)庫對(duì)象DB2權(quán)限簡(jiǎn)介用戶通過了認(rèn)證,DB2內(nèi)部的安13[經(jīng)濟(jì)學(xué)]第六章_DB2存取控制課件14SYSADM權(quán)限SYSADM權(quán)限是DB2系統(tǒng)中最高級(jí)別的權(quán)限。對(duì)某個(gè)實(shí)例具備SYSADM權(quán)限的用戶能夠?qū)υ搶?shí)例以及實(shí)例內(nèi)的任何數(shù)據(jù)庫執(zhí)行任何DB2操作,還能夠訪問數(shù)據(jù)庫內(nèi)的數(shù)據(jù),并能夠授予或取消特權(quán)和權(quán)限。SYSADM用戶是唯一允許更新DBM配置文件的用戶。如果要賦予某個(gè)用戶SYSADM權(quán)限,必須將該用戶添加到相應(yīng)的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSADM_GROUP的參數(shù)值為該用戶組的名稱。db2updatedbmcfgusingSYSADM_GROUPgrp111SYSADM權(quán)限SYSADM權(quán)限是DB15SYSCTRL權(quán)限SYSCTRL是比SYSADM低一級(jí)的實(shí)例級(jí)用戶權(quán)限,SYSCTRL允許用戶執(zhí)行大多數(shù)的數(shù)據(jù)庫管理和維護(hù)任務(wù),但是缺省情況下,具有該權(quán)限的用戶不能存取數(shù)據(jù)庫對(duì)象,不過,SYSCTRL權(quán)限具有創(chuàng)建數(shù)據(jù)庫的權(quán)力,對(duì)于自己創(chuàng)建的數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象,SYSCTRL用戶具有絕對(duì)的控制權(quán)。要賦予某個(gè)用戶SYSCTRL權(quán)限,必須將該用戶添加到相應(yīng)的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSCTRL_GROUP的值為該用戶組名稱。SYSCTRL權(quán)限SYSCTRL是比SYSADM低一級(jí)的實(shí)例16SYSCTRL權(quán)限
SYSCTRL用戶可以對(duì)實(shí)例內(nèi)的任何數(shù)據(jù)庫執(zhí)行的命令有:DB2start/db2stopdb2create/dropdatabasedb2create/droptablespacedb2backup/restore/rollforwarddatabasedb2runstats(可以對(duì)任何表執(zhí)行該命令)db2updatedbcfgfordatabasedbnameSYSCTRL權(quán)限SYSCTRL用戶可以對(duì)實(shí)例內(nèi)的任何數(shù)據(jù)17SYSMAINT權(quán)限SYSMAINT權(quán)限是比SYSCTRL低一級(jí)的實(shí)例級(jí)權(quán)限。SYSMAINT權(quán)限允許用戶執(zhí)行系統(tǒng)的維護(hù)工作,具有該權(quán)限的用戶在缺省情況下不能創(chuàng)建數(shù)據(jù)庫。要賦予某個(gè)用戶SYSMAINT權(quán)限,必須將該用戶添加到相應(yīng)的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSMAINT_GROUP的值為該用戶組名稱。具有SYSMAINT權(quán)限的用戶可以發(fā)出的命令是具有SYSCTRL權(quán)限的用戶所允許發(fā)出的命令的子集。SYSMAINT權(quán)限SYSMAINT權(quán)限是比SYSCTRL18SYSMAINT用戶只能執(zhí)行與維護(hù)有關(guān)的任務(wù),例如:db2start/db2stopdb2backup/restore/rollforwarddatabasedb2runstats(可以對(duì)任何表執(zhí)行該命令)db2updatedbcfgfordatabasedbnameSYSMAINT權(quán)限SYSMAINT用戶只能執(zhí)行與維護(hù)有關(guān)的任務(wù),例如:S19DBADM權(quán)限
DBADM權(quán)限是一種數(shù)據(jù)庫級(jí)權(quán)限而不是實(shí)例級(jí)權(quán)限,是數(shù)據(jù)庫級(jí)別的最高權(quán)限。DBADM權(quán)限對(duì)于數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象具有絕對(duì)的控制權(quán),還可以將數(shù)據(jù)庫對(duì)象上的相應(yīng)特權(quán)賦予其它用戶。要賦予某個(gè)用戶DBADM權(quán)限,必須由該數(shù)據(jù)庫所在實(shí)例上具有SYSADM權(quán)限的用戶通過grant命令來授予。DBADM用戶不能執(zhí)行下列任務(wù):dropdatabasedrop/createtablespacebackup/restoredatabaseupdatedbcfgfordatabasedbnameDBADM權(quán)限D(zhuǎn)BADM權(quán)限是一種數(shù)據(jù)庫級(jí)20LOAD權(quán)限
Load權(quán)限是一種比較特殊的數(shù)據(jù)庫級(jí)別的權(quán)限。因?yàn)樵摍?quán)限只是專門針對(duì)Load操作這樣一個(gè)任務(wù)而設(shè)定的。擁有該權(quán)限的用戶可以在不具備SYSADM或者DBADM權(quán)限的情況下完成Load操作。如果想賦予某個(gè)用戶Load權(quán)限,必須由具有SYSADM或者DBADM權(quán)限的用戶通過grant命令來授予。db2grantloadondatabasetousertst1db2grantinsertontablesalestousertst1LOAD權(quán)限Load權(quán)限是一種比較特殊的數(shù)21具有LOAD權(quán)限的用戶可以運(yùn)行下列命令:db2quiescetablespacefortabledb2listtablespacedb2runstats(任何表)db2loadinsert(必須對(duì)表具有插入特權(quán))db2loadrestart/terminateafterloadinsert(必須對(duì)表具有插入特權(quán))db2loadreplace(必須對(duì)表具有插入和刪除特權(quán))db2loadrestart/terminateafterloadreplace(必須對(duì)表具有插入和刪除特權(quán))LOAD權(quán)限具有LOAD權(quán)限的用戶可以運(yùn)行下列命令:LOAD權(quán)限22[經(jīng)濟(jì)學(xué)]第六章_DB2存取控制課件23DB2特權(quán)特權(quán)是創(chuàng)建和存取數(shù)據(jù)庫對(duì)象的能力。按功能點(diǎn)劃分擁有者特權(quán)(control特權(quán))個(gè)體特權(quán)隱式特權(quán)按范圍劃分?jǐn)?shù)據(jù)庫級(jí)別特權(quán)對(duì)象級(jí)別特權(quán)DB2特權(quán)特權(quán)是創(chuàng)建和存取數(shù)據(jù)庫對(duì)象的能力。24擁有者特權(quán)又稱為控制權(quán),如果用戶在某個(gè)數(shù)據(jù)庫對(duì)象上擁有這種特權(quán),該用戶就可以對(duì)該對(duì)象擁有全面的控制,既可以存取該對(duì)象,也可以將該對(duì)象上的特權(quán)賦予其它用戶。
通常情況下,數(shù)據(jù)庫對(duì)象的創(chuàng)建者會(huì)自動(dòng)擁有該對(duì)象的擁有者特權(quán)。DB2特權(quán)擁有者特權(quán)DB2特權(quán)25個(gè)體特權(quán)這類特權(quán)允許用戶對(duì)數(shù)據(jù)庫對(duì)象進(jìn)行特定操作,比如一個(gè)用戶擁有了某個(gè)表上的select特權(quán),該用戶就可以對(duì)該表進(jìn)行select操作。隱式特權(quán)這種特權(quán)是指由于用戶執(zhí)行了某些操作或被授予了更高級(jí)別的權(quán)限和特權(quán)的時(shí)候,DB2自動(dòng)授予該用戶的特權(quán)。DB2特權(quán)個(gè)體特權(quán)DB2特權(quán)26數(shù)據(jù)庫特權(quán)數(shù)據(jù)庫BINDADDIMPLICIT_SHCEMACREATE_NOT_FENCEDCONNECTCREATETABLOADQUIESCE_CONNECTCREATE_EXTERNAL_ROUTINE數(shù)據(jù)庫特權(quán)數(shù)據(jù)庫BINDADDIMPLICIT_SHCEMA27[經(jīng)濟(jì)學(xué)]第六章_DB2存取控制課件28數(shù)據(jù)庫特權(quán)描述CREATETAB用戶可以在數(shù)據(jù)庫內(nèi)創(chuàng)建表BINDADD用戶可以使用BIND命令在數(shù)據(jù)庫內(nèi)創(chuàng)建程序包CONNECT用戶可以連接到數(shù)據(jù)庫CREATE_NOT_FENCED用戶可以創(chuàng)建非隔離的、由用戶定義的函數(shù)(UDF)IMPLICIT_SCHEMA用戶可以不使用CREATESCHEMA命令而在數(shù)據(jù)庫內(nèi)隱式地創(chuàng)建模式LOAD用戶可以將數(shù)據(jù)裝入到表中QUIESCE_CONNECT用戶可以在數(shù)據(jù)庫處于停頓狀態(tài)時(shí)訪問數(shù)據(jù)庫CREATE_EXTERNAL_ROUTINE用戶可以創(chuàng)建一個(gè)外部例程(UDF、存儲(chǔ)過程等),供應(yīng)用程序和數(shù)據(jù)庫的其他用戶使用數(shù)據(jù)庫特權(quán)數(shù)據(jù)庫特權(quán)描述CREATETA29數(shù)據(jù)庫對(duì)象特權(quán)CONTROL
(視圖)ALLDELETEINSERTSELECTUPDATEALLALTERDELETEINDEXINSERTREFERENCESSELECTUPDATECONTROL
(表)CONTROL
(索引)ALTERINCREATEINDROPIN
(模式)CONTROL
(別名)CONTROL
(表空間)CONTROL
(程序包)BINDEXECUTEUSEALLALTERINDEXREFERENCES數(shù)據(jù)庫對(duì)象數(shù)據(jù)庫對(duì)象特權(quán)CONTROLALLALLCONTROLCON30數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述CONTROL表、視圖、索引、包、別名、單值類型、用戶定義的函數(shù)和序列提供對(duì)象的所有權(quán)限。在數(shù)據(jù)庫對(duì)象創(chuàng)建時(shí)自動(dòng)分配給對(duì)象的創(chuàng)建者。具有此特權(quán)的用戶還將該對(duì)象上的特權(quán)授予其他用戶或者取消這些特權(quán)。DELETE表和視圖允許用戶從對(duì)象刪除記錄。INSERT表和視圖允許用戶借助INSERT或IMPORT命令將記錄插入對(duì)象。SELECT表和視圖提供使用select語句查看對(duì)象內(nèi)容的能力UPDATE表和視圖允許用戶使用update語句修改對(duì)象內(nèi)的記錄。ALTER表允許用戶使用alter語句修改對(duì)象定義。數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述CONTR31數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述INDEX表允許用戶使用createindex語句在對(duì)象上創(chuàng)建索引。REFERENCES表提供在對(duì)象上創(chuàng)建或刪除外鍵約束的能力。BIND包允許用戶重新聯(lián)編現(xiàn)有的包。EXECUTE包、過程、函數(shù)和方法允許用戶執(zhí)行包和例程。ALTERIN模式允許用戶修改模式內(nèi)的對(duì)象定義。CREATEIN模式允許用戶在模式內(nèi)創(chuàng)建對(duì)象。DROPIN模式允許用戶刪除模式內(nèi)的對(duì)象。數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述INDEX32控制對(duì)數(shù)據(jù)庫對(duì)象的存取控制授權(quán)有3種方式:通過使用GRANT和REVOKE語句進(jìn)行顯式授權(quán)通過創(chuàng)建和撤消對(duì)象進(jìn)行隱式授權(quán)與程序包有關(guān)的間接特權(quán)控制對(duì)數(shù)據(jù)庫對(duì)象的存取控制授權(quán)有3種方式:33顯式授權(quán)—授予特權(quán)可以通過GRANT語句進(jìn)行顯式授權(quán)。GRANTprivilegeONobject-typeobject-nameTO[{USER|GROUP|PUBLIC}]authorization-name[WITHGRANTOPTION]WITHGRANTOPTION使獲得授權(quán)的用戶能夠?qū)@得的特權(quán)授予其他用戶。顯式授權(quán)—授予特權(quán)可以通過GRANT語句進(jìn)行顯34示例將employee表的select特權(quán)授予用戶heron,并且heron能將獲得的特權(quán)授予其它用戶。grantselectonemployeetouserheronwithgrantoption將employee表的select特權(quán)授予組herongrantselectonemployeetogroupheron示例將employee表的select特權(quán)授予用戶heron35要授予對(duì)大多數(shù)數(shù)據(jù)庫對(duì)象的特權(quán),用戶必須對(duì)該對(duì)象具有SYSADM權(quán)限、DBADM權(quán)限或CONTROL特權(quán),或者用戶必須持有使用WITHGRANTOPTION授予的特權(quán)。
要將CONTROL特權(quán)授予其它用戶,該用戶必須具有SYSADM或DBADM權(quán)限;要授予DBADM特權(quán),用戶必須具有SYSADM權(quán)限。顯式授權(quán)—授予特權(quán)要授予對(duì)大多數(shù)數(shù)據(jù)庫對(duì)象的特權(quán),用戶必36顯式授權(quán)—撤銷特權(quán)REVOKE語句允許特許用戶撤銷先前授予其他用戶的特權(quán)。
REVOKEprivilegeONobject-typeobject-nameFROM[{USER|GROUP|PUBLIC}]authorization-name要撤銷賦予數(shù)據(jù)庫對(duì)象的特權(quán),必須對(duì)該對(duì)象具有DBADM權(quán)限、SYSADM權(quán)限或CONTROL特權(quán)。要撤銷CONTROL特權(quán),必須具有SYSADM或DBADM權(quán)限;要撤銷DBADM權(quán)限,必須具有SYSADM權(quán)限。顯式授權(quán)—撤銷特權(quán)REVOKE語句允許特許用戶37如果已經(jīng)把一個(gè)特權(quán)授予有相同名稱的一個(gè)用戶和一個(gè)組,當(dāng)撤銷此特權(quán)時(shí)必須指定group或user關(guān)鍵字。從用戶heron撤銷多employee表的select特權(quán)revokeselectonemployeefromuserheron從組heron撤銷多employee表的select特權(quán)revokeselectonemployeefromgroupheron示例如果已經(jīng)把一個(gè)特權(quán)授予有相同名稱的一個(gè)用戶和一個(gè)組,38用戶、用戶組和PUBLICDB2用戶一定是操作系統(tǒng)用戶;PUBLIC是特殊的DB2用戶組,代表所有DB2用戶;在大多數(shù)情況下,一個(gè)用戶擁有的特權(quán)等于授予該用戶的特權(quán)、授予該用戶所在用戶組的特權(quán)以及授予PUBLIC的特權(quán)三者的并集。用戶、用戶組和PUBLICDB2用戶一定是操作系統(tǒng)用戶;39隱式特權(quán)隱式特權(quán)是在用戶執(zhí)行某些操作(通常是創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫對(duì)象以及被授予某些高級(jí)別權(quán)力)時(shí),自動(dòng)授予用戶的特權(quán)。當(dāng)所創(chuàng)建的對(duì)象被刪除時(shí),這些特權(quán)也會(huì)被隱式地取消。但在顯式取消更高級(jí)別特權(quán)時(shí),這些隱式特權(quán)卻不會(huì)被隱式地取消。隱式特權(quán)隱式特權(quán)是在用戶執(zhí)行某些操作(通常是創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)40隱式特權(quán)示例(一)創(chuàng)建數(shù)據(jù)庫時(shí),系統(tǒng)隱式授予的特權(quán)有:授予數(shù)據(jù)庫的創(chuàng)建者BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUNTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT特權(quán)授予PUBLIC組BINDADD、CREATETAB、CONNECT和IMPLICIT_SCHEMA特權(quán)授予PUBLIC組系統(tǒng)編目表和系統(tǒng)編目視圖上的SELECT特權(quán)授予PUBLIC組USERSPACE1的USE特權(quán)......隱式特權(quán)示例(一)創(chuàng)建數(shù)據(jù)庫時(shí),系統(tǒng)隱式授予的特權(quán)有41隱式特權(quán)示例(二)SYSADM授予某用戶DBADM權(quán)限的時(shí)候,系統(tǒng)隱式發(fā)生下列授權(quán)活動(dòng):同時(shí)授予該用戶該數(shù)據(jù)庫上的BINDADD、CONNECT、CREATETAB、CREATE_EXTERNAL_ROUTINE、CREATE_NOT_FENCED_ROUTINE、IMPLICIT_SCHEMA、LOAD和QUIESCE_CONNECT特權(quán)用戶創(chuàng)建數(shù)據(jù)庫對(duì)象時(shí),系統(tǒng)隱式發(fā)生下列授權(quán)活動(dòng):同時(shí)授予對(duì)象創(chuàng)建者該對(duì)象上的CONTROL特權(quán)。用戶創(chuàng)建視圖時(shí),系統(tǒng)隱式授予視圖創(chuàng)建者的特權(quán)不會(huì)超出該創(chuàng)建者在基表上擁有的特權(quán)。隱式特權(quán)示例(二)SYSADM授予某用戶DBADM權(quán)限的時(shí)候42間接特權(quán)間接特權(quán)與程序包有關(guān)。當(dāng)用戶執(zhí)行一個(gè)涉及某些特權(quán)的程序包時(shí),將自動(dòng)獲得執(zhí)行程序包中包含的靜態(tài)SQL語言所需的權(quán)限,不需要顯式授權(quán)。例如:程序包包含對(duì)某個(gè)表的插入操作,如果用戶具有程序包上的EXECUTE特權(quán),則該用戶不需要具有該表上的INSERT特權(quán)就可以完成插入操作。間接特權(quán)間接特權(quán)與程序包有關(guān)。當(dāng)用戶執(zhí)43通過視圖進(jìn)行安全控制如果表中存在部分敏感數(shù)據(jù),不能讓特定用戶查看,可以通過視圖進(jìn)行安全控制:db2createviewv1asselectempno,empname,phonefromemployeedb2revokeselectontableemployeefrommeldb2grantselectonviewv1tomel通過視圖進(jìn)行安全控制如果表中存在部分敏感數(shù)據(jù),不能讓特44基于標(biāo)簽的訪問控制
DB29中新增的一個(gè)概念是基于標(biāo)簽的訪問控制(LBAC)。LBAC為DBA提供了在表的行或列級(jí)限制讀/寫特權(quán)的能力。
在以前,進(jìn)行這種限制的惟一方法是創(chuàng)建一個(gè)視圖,授權(quán)用戶使用這個(gè)視圖,并撤消對(duì)基表的訪問權(quán)?;跇?biāo)簽的訪問控制
DB29中新增45應(yīng)用程序相關(guān)特權(quán)要進(jìn)行的工作需要的特權(quán)預(yù)編譯數(shù)據(jù)庫上的CONNECT特權(quán)綁定,在數(shù)據(jù)庫中生成程序包數(shù)據(jù)庫上的CONNECT和BINDADD特權(quán)執(zhí)行包中每個(gè)靜態(tài)SQL語句的特權(quán)修改已經(jīng)存在的程序包數(shù)據(jù)庫上的CONNECT和BIND特權(quán)執(zhí)行包中每個(gè)靜態(tài)SQL語句的特權(quán)執(zhí)行一個(gè)程序包數(shù)據(jù)庫上的CONNECT特權(quán)程序包上的EXECUTE特權(quán)刪除一個(gè)程序包數(shù)據(jù)庫上的CONNECT特權(quán)程序包上的CONTROL特權(quán)應(yīng)用程序相關(guān)特權(quán)要進(jìn)行的工作需要的特權(quán)預(yù)編譯數(shù)據(jù)庫上的CON46審計(jì)?DB2UDB審計(jì)(Audit)功能是DBA工具箱中一件重要的 安全性工具。它可以對(duì)一系列預(yù)定義的數(shù)據(jù)庫事件進(jìn) 行審計(jì)跟蹤,并允許DBA維護(hù)審計(jì)跟蹤。?審計(jì)發(fā)生在實(shí)例級(jí),所以一旦啟動(dòng)審計(jì)功能,它就會(huì)審計(jì)那個(gè)實(shí)例中所有數(shù)據(jù)庫的活動(dòng)。?審計(jì)功能必須單獨(dú)啟動(dòng)和停止?只有具有SYSADM權(quán)限的用戶才能配置和使用審計(jì)功能。審計(jì)?DB2UDB審計(jì)(Audit)功能是DBA工具箱中47審計(jì)緩沖區(qū)Db2audit.logDb2audit.log審計(jì)配置服務(wù)器DB2實(shí)例數(shù)據(jù)庫數(shù)據(jù)庫審計(jì)緩沖區(qū)Db2audit.logDb2audit.log審48本章小結(jié)?本章介紹了DB2中三種主要的安全機(jī)制,這三種機(jī)制分別為身份驗(yàn)證(authentication)、授權(quán)(authorization)和特權(quán)(privilege)。?還詳細(xì)介紹了使用命令撤消、授予權(quán)限和特權(quán)的方法。?此外還介紹了審計(jì),審計(jì)是DBA工具箱中一件重要的安全性工具。本章小結(jié)?本章介紹了DB2中三種主要的安全機(jī)制,這三種機(jī)49第六章
DB2存取控制第六章
DB2存取控制50DB2存取控制安全策略DB2認(rèn)證DB2權(quán)限D(zhuǎn)B2特權(quán)DB2存取控制安全策略51數(shù)據(jù)庫安全性考慮允許誰訪問實(shí)例和數(shù)據(jù)庫在何處以及如何驗(yàn)證用戶的密碼授予用戶的權(quán)限級(jí)別允許用戶運(yùn)行的命令允許用戶對(duì)數(shù)據(jù)所做的操作允許用戶對(duì)數(shù)據(jù)庫對(duì)象所作的操作數(shù)據(jù)庫安全性考慮允許誰訪問實(shí)例和數(shù)據(jù)庫52DB2安全機(jī)制認(rèn)證(Authentication)核實(shí)用戶身份,典型的手段是要求用戶提供用戶名和口令。這個(gè)過程由DB2之外的安全機(jī)制負(fù)責(zé)。這些安全設(shè)施通常包括:操作系統(tǒng)的安全機(jī)制,以及第三方的安全產(chǎn)品。權(quán)限(Authority)是一種高層次的用戶權(quán)力,通常授予需要對(duì)數(shù)據(jù)庫和實(shí)例進(jìn)行管理和維護(hù)的用戶。權(quán)限主要用于對(duì)實(shí)例內(nèi)部對(duì)象的存取,控制用戶是否能夠執(zhí)行某項(xiàng)管理任務(wù)。特權(quán)(Privilege)是針對(duì)數(shù)據(jù)庫對(duì)象的用戶權(quán)力,通常授予只需對(duì)數(shù)據(jù)庫對(duì)象進(jìn)行存取的用戶,用來控制他們對(duì)數(shù)據(jù)庫對(duì)象的存取。DB2安全機(jī)制認(rèn)證(Authentication)53DB2認(rèn)證簡(jiǎn)介DB2認(rèn)證控制著數(shù)據(jù)庫安全性計(jì)劃的下列幾個(gè)方面:允許誰訪問實(shí)例和/或數(shù)據(jù)庫在何處/如何驗(yàn)證用戶的密碼需要進(jìn)行DB2認(rèn)證過程的命令:ATTACH(連接實(shí)例)CONNECT(連接數(shù)據(jù)庫)如果在使用Attach和Connect命令的時(shí)候,沒有提供用戶名和口令,系統(tǒng)將會(huì)使用用戶在登錄操作系統(tǒng)時(shí)所使用的用戶名和口令進(jìn)行認(rèn)證,認(rèn)證的過程是由DB2之外的安全設(shè)施來進(jìn)行的。DB2認(rèn)證簡(jiǎn)介DB2認(rèn)證控制著數(shù)據(jù)庫安全性計(jì)劃的下列幾個(gè)方面54DB2支持的認(rèn)證類型
認(rèn)證類型即如何進(jìn)行認(rèn)證以及在何處進(jìn)行認(rèn)證。DB2支持的認(rèn)證類型包括:類型描述server在服務(wù)器上進(jìn)行認(rèn)證。server_encrypt在服務(wù)器上進(jìn)行認(rèn)證。在將口令(密碼)發(fā)送給服務(wù)器之前,先在客戶機(jī)上對(duì)口令(密碼)進(jìn)行加密。client在客戶機(jī)機(jī)器上進(jìn)行認(rèn)證。kerberos認(rèn)證由kerberos安全性軟件執(zhí)行。krb_server_encrypt如果客戶機(jī)設(shè)置為kerberos,則認(rèn)證由kerberos安全性軟件執(zhí)行。否則,就使用server_encrypt。DB2支持的認(rèn)證類型認(rèn)證類型即如何進(jìn)行認(rèn)證以及在何處55在服務(wù)器上設(shè)置認(rèn)證認(rèn)證類型可以設(shè)置在DB2服務(wù)器端和DB2客戶端。如果要在數(shù)據(jù)庫服務(wù)器上設(shè)置認(rèn)證類型,可通過設(shè)置數(shù)據(jù)庫管理器配置參數(shù)authentication實(shí)現(xiàn)。該參數(shù)為實(shí)例級(jí)參數(shù),因此實(shí)例中所有數(shù)據(jù)庫都會(huì)受到該參數(shù)設(shè)置的影響。db2updatadbmcfgusingauthenticationserver_encrypydb2stopdb2start在服務(wù)器上設(shè)置認(rèn)證認(rèn)證類型可以設(shè)置在D56在客戶機(jī)上設(shè)置認(rèn)證對(duì)于連接到非主機(jī)數(shù)據(jù)庫的客戶機(jī),可通過catalogdatabase命令設(shè)置認(rèn)證類型??蛻魴C(jī)的認(rèn)證設(shè)置必須匹配客戶機(jī)所連接的數(shù)據(jù)庫服務(wù)器的認(rèn)證設(shè)置。db2catalogdatabasesampleatnodend1authenticationserver在客戶機(jī)上設(shè)置認(rèn)證對(duì)于連接到非主機(jī)數(shù)據(jù)57在客戶機(jī)上設(shè)置認(rèn)證當(dāng)服務(wù)器將認(rèn)證類型設(shè)置成Client的時(shí)候,希望由客戶端代替服務(wù)器端進(jìn)行認(rèn)證。但最終認(rèn)證類型是否在客戶端進(jìn)行還要由兩個(gè)因素決定:一是客戶端的受信任程度;第二是數(shù)據(jù)庫管理器配置文件中的兩個(gè)參數(shù)。TRUST_ALLCLNTSTRUST_CLNTAUTH在客戶機(jī)上設(shè)置認(rèn)證當(dāng)服務(wù)器將認(rèn)證類型設(shè)58客戶機(jī)的信任程度根據(jù)客戶機(jī)操作系統(tǒng)提供的安全機(jī)制,把客戶機(jī)分成以下三類:不可信的客戶機(jī):運(yùn)行在Windows98/ME操作系統(tǒng)上的客戶機(jī)。主機(jī)客戶機(jī):運(yùn)行在類似OS/390這樣的主機(jī)操作系統(tǒng)上的客戶機(jī)。可信的客戶機(jī):運(yùn)行在WindowsNT,Windows2000,Unix等具備完備的安全機(jī)制的操作系統(tǒng)上的客戶端??蛻魴C(jī)的信任程度根據(jù)客戶機(jī)操作系統(tǒng)提59TRUST_ALLCLNTS該參數(shù)確定是否信任所有客戶端,指定是否所有的客戶端都可以對(duì)用戶進(jìn)行驗(yàn)證。取值作用YES參數(shù)缺省值。迫使所有的客戶端(包括不受信任的客戶端)對(duì)用戶進(jìn)行驗(yàn)證。NO所有不受信任的客戶端將在服務(wù)器端進(jìn)行驗(yàn)證,在連接時(shí)必須提供用戶名和口令。所有受信任的客戶端將在客戶端進(jìn)行用戶驗(yàn)證。DRDAONLY只有MVS、OS/390、VM、VSE和OS/400系統(tǒng)上的DB2客戶端可以代表數(shù)據(jù)庫服務(wù)器進(jìn)行用戶驗(yàn)證。TRUST_ALLCLNTS該參數(shù)確定是否信任所有客60TRUST_CLNTAUTH該參數(shù)用來設(shè)定當(dāng)用戶進(jìn)行實(shí)例或數(shù)據(jù)庫連接的時(shí)候,如果提供了用戶名和口令,則認(rèn)證過程會(huì)在什么地方發(fā)生。取值作用client驗(yàn)證過程將在客戶端進(jìn)行。如果連接時(shí)沒有提供用戶名和口令,系統(tǒng)將自動(dòng)使用用戶登錄到客戶端操作系統(tǒng)時(shí)提供的用戶名和口令進(jìn)行驗(yàn)證。server驗(yàn)證過程將在服務(wù)器端進(jìn)行思考:如果要讓所有的認(rèn)證過程都在客戶端完成,該如何設(shè)置相關(guān)參數(shù)?除了服務(wù)器端的認(rèn)證類型要設(shè)置成client之外,還要將trust_allclnts參數(shù)設(shè)置為yes。trust_clntauth參數(shù)設(shè)置為client。TRUST_CLNTAUTH該參數(shù)用來設(shè)定當(dāng)用戶進(jìn)行實(shí)例61DB2權(quán)限簡(jiǎn)介用戶通過了認(rèn)證,DB2內(nèi)部的安全機(jī)制將會(huì)控制用戶對(duì)數(shù)據(jù)庫系統(tǒng)的存取,這種存取控制主要是通過為用戶指定某些權(quán)限或者特權(quán)來決定的。DB2權(quán)限控制數(shù)據(jù)庫安全性計(jì)劃的以下幾方面:授予用戶的權(quán)限級(jí)別允許用戶運(yùn)行的命令允許用戶讀和修改的數(shù)據(jù)允許用戶創(chuàng)建、修改和刪除的數(shù)據(jù)庫對(duì)象DB2權(quán)限簡(jiǎn)介用戶通過了認(rèn)證,DB2內(nèi)部的安62[經(jīng)濟(jì)學(xué)]第六章_DB2存取控制課件63SYSADM權(quán)限SYSADM權(quán)限是DB2系統(tǒng)中最高級(jí)別的權(quán)限。對(duì)某個(gè)實(shí)例具備SYSADM權(quán)限的用戶能夠?qū)υ搶?shí)例以及實(shí)例內(nèi)的任何數(shù)據(jù)庫執(zhí)行任何DB2操作,還能夠訪問數(shù)據(jù)庫內(nèi)的數(shù)據(jù),并能夠授予或取消特權(quán)和權(quán)限。SYSADM用戶是唯一允許更新DBM配置文件的用戶。如果要賦予某個(gè)用戶SYSADM權(quán)限,必須將該用戶添加到相應(yīng)的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSADM_GROUP的參數(shù)值為該用戶組的名稱。db2updatedbmcfgusingSYSADM_GROUPgrp111SYSADM權(quán)限SYSADM權(quán)限是DB64SYSCTRL權(quán)限SYSCTRL是比SYSADM低一級(jí)的實(shí)例級(jí)用戶權(quán)限,SYSCTRL允許用戶執(zhí)行大多數(shù)的數(shù)據(jù)庫管理和維護(hù)任務(wù),但是缺省情況下,具有該權(quán)限的用戶不能存取數(shù)據(jù)庫對(duì)象,不過,SYSCTRL權(quán)限具有創(chuàng)建數(shù)據(jù)庫的權(quán)力,對(duì)于自己創(chuàng)建的數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象,SYSCTRL用戶具有絕對(duì)的控制權(quán)。要賦予某個(gè)用戶SYSCTRL權(quán)限,必須將該用戶添加到相應(yīng)的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSCTRL_GROUP的值為該用戶組名稱。SYSCTRL權(quán)限SYSCTRL是比SYSADM低一級(jí)的實(shí)例65SYSCTRL權(quán)限
SYSCTRL用戶可以對(duì)實(shí)例內(nèi)的任何數(shù)據(jù)庫執(zhí)行的命令有:DB2start/db2stopdb2create/dropdatabasedb2create/droptablespacedb2backup/restore/rollforwarddatabasedb2runstats(可以對(duì)任何表執(zhí)行該命令)db2updatedbcfgfordatabasedbnameSYSCTRL權(quán)限SYSCTRL用戶可以對(duì)實(shí)例內(nèi)的任何數(shù)據(jù)66SYSMAINT權(quán)限SYSMAINT權(quán)限是比SYSCTRL低一級(jí)的實(shí)例級(jí)權(quán)限。SYSMAINT權(quán)限允許用戶執(zhí)行系統(tǒng)的維護(hù)工作,具有該權(quán)限的用戶在缺省情況下不能創(chuàng)建數(shù)據(jù)庫。要賦予某個(gè)用戶SYSMAINT權(quán)限,必須將該用戶添加到相應(yīng)的用戶組中,然后再更改數(shù)據(jù)庫管理器配置參數(shù)SYSMAINT_GROUP的值為該用戶組名稱。具有SYSMAINT權(quán)限的用戶可以發(fā)出的命令是具有SYSCTRL權(quán)限的用戶所允許發(fā)出的命令的子集。SYSMAINT權(quán)限SYSMAINT權(quán)限是比SYSCTRL67SYSMAINT用戶只能執(zhí)行與維護(hù)有關(guān)的任務(wù),例如:db2start/db2stopdb2backup/restore/rollforwarddatabasedb2runstats(可以對(duì)任何表執(zhí)行該命令)db2updatedbcfgfordatabasedbnameSYSMAINT權(quán)限SYSMAINT用戶只能執(zhí)行與維護(hù)有關(guān)的任務(wù),例如:S68DBADM權(quán)限
DBADM權(quán)限是一種數(shù)據(jù)庫級(jí)權(quán)限而不是實(shí)例級(jí)權(quán)限,是數(shù)據(jù)庫級(jí)別的最高權(quán)限。DBADM權(quán)限對(duì)于數(shù)據(jù)庫中的數(shù)據(jù)庫對(duì)象具有絕對(duì)的控制權(quán),還可以將數(shù)據(jù)庫對(duì)象上的相應(yīng)特權(quán)賦予其它用戶。要賦予某個(gè)用戶DBADM權(quán)限,必須由該數(shù)據(jù)庫所在實(shí)例上具有SYSADM權(quán)限的用戶通過grant命令來授予。DBADM用戶不能執(zhí)行下列任務(wù):dropdatabasedrop/createtablespacebackup/restoredatabaseupdatedbcfgfordatabasedbnameDBADM權(quán)限D(zhuǎn)BADM權(quán)限是一種數(shù)據(jù)庫級(jí)69LOAD權(quán)限
Load權(quán)限是一種比較特殊的數(shù)據(jù)庫級(jí)別的權(quán)限。因?yàn)樵摍?quán)限只是專門針對(duì)Load操作這樣一個(gè)任務(wù)而設(shè)定的。擁有該權(quán)限的用戶可以在不具備SYSADM或者DBADM權(quán)限的情況下完成Load操作。如果想賦予某個(gè)用戶Load權(quán)限,必須由具有SYSADM或者DBADM權(quán)限的用戶通過grant命令來授予。db2grantloadondatabasetousertst1db2grantinsertontablesalestousertst1LOAD權(quán)限Load權(quán)限是一種比較特殊的數(shù)70具有LOAD權(quán)限的用戶可以運(yùn)行下列命令:db2quiescetablespacefortabledb2listtablespacedb2runstats(任何表)db2loadinsert(必須對(duì)表具有插入特權(quán))db2loadrestart/terminateafterloadinsert(必須對(duì)表具有插入特權(quán))db2loadreplace(必須對(duì)表具有插入和刪除特權(quán))db2loadrestart/terminateafterloadreplace(必須對(duì)表具有插入和刪除特權(quán))LOAD權(quán)限具有LOAD權(quán)限的用戶可以運(yùn)行下列命令:LOAD權(quán)限71[經(jīng)濟(jì)學(xué)]第六章_DB2存取控制課件72DB2特權(quán)特權(quán)是創(chuàng)建和存取數(shù)據(jù)庫對(duì)象的能力。按功能點(diǎn)劃分擁有者特權(quán)(control特權(quán))個(gè)體特權(quán)隱式特權(quán)按范圍劃分?jǐn)?shù)據(jù)庫級(jí)別特權(quán)對(duì)象級(jí)別特權(quán)DB2特權(quán)特權(quán)是創(chuàng)建和存取數(shù)據(jù)庫對(duì)象的能力。73擁有者特權(quán)又稱為控制權(quán),如果用戶在某個(gè)數(shù)據(jù)庫對(duì)象上擁有這種特權(quán),該用戶就可以對(duì)該對(duì)象擁有全面的控制,既可以存取該對(duì)象,也可以將該對(duì)象上的特權(quán)賦予其它用戶。
通常情況下,數(shù)據(jù)庫對(duì)象的創(chuàng)建者會(huì)自動(dòng)擁有該對(duì)象的擁有者特權(quán)。DB2特權(quán)擁有者特權(quán)DB2特權(quán)74個(gè)體特權(quán)這類特權(quán)允許用戶對(duì)數(shù)據(jù)庫對(duì)象進(jìn)行特定操作,比如一個(gè)用戶擁有了某個(gè)表上的select特權(quán),該用戶就可以對(duì)該表進(jìn)行select操作。隱式特權(quán)這種特權(quán)是指由于用戶執(zhí)行了某些操作或被授予了更高級(jí)別的權(quán)限和特權(quán)的時(shí)候,DB2自動(dòng)授予該用戶的特權(quán)。DB2特權(quán)個(gè)體特權(quán)DB2特權(quán)75數(shù)據(jù)庫特權(quán)數(shù)據(jù)庫BINDADDIMPLICIT_SHCEMACREATE_NOT_FENCEDCONNECTCREATETABLOADQUIESCE_CONNECTCREATE_EXTERNAL_ROUTINE數(shù)據(jù)庫特權(quán)數(shù)據(jù)庫BINDADDIMPLICIT_SHCEMA76[經(jīng)濟(jì)學(xué)]第六章_DB2存取控制課件77數(shù)據(jù)庫特權(quán)描述CREATETAB用戶可以在數(shù)據(jù)庫內(nèi)創(chuàng)建表BINDADD用戶可以使用BIND命令在數(shù)據(jù)庫內(nèi)創(chuàng)建程序包CONNECT用戶可以連接到數(shù)據(jù)庫CREATE_NOT_FENCED用戶可以創(chuàng)建非隔離的、由用戶定義的函數(shù)(UDF)IMPLICIT_SCHEMA用戶可以不使用CREATESCHEMA命令而在數(shù)據(jù)庫內(nèi)隱式地創(chuàng)建模式LOAD用戶可以將數(shù)據(jù)裝入到表中QUIESCE_CONNECT用戶可以在數(shù)據(jù)庫處于停頓狀態(tài)時(shí)訪問數(shù)據(jù)庫CREATE_EXTERNAL_ROUTINE用戶可以創(chuàng)建一個(gè)外部例程(UDF、存儲(chǔ)過程等),供應(yīng)用程序和數(shù)據(jù)庫的其他用戶使用數(shù)據(jù)庫特權(quán)數(shù)據(jù)庫特權(quán)描述CREATETA78數(shù)據(jù)庫對(duì)象特權(quán)CONTROL
(視圖)ALLDELETEINSERTSELECTUPDATEALLALTERDELETEINDEXINSERTREFERENCESSELECTUPDATECONTROL
(表)CONTROL
(索引)ALTERINCREATEINDROPIN
(模式)CONTROL
(別名)CONTROL
(表空間)CONTROL
(程序包)BINDEXECUTEUSEALLALTERINDEXREFERENCES數(shù)據(jù)庫對(duì)象數(shù)據(jù)庫對(duì)象特權(quán)CONTROLALLALLCONTROLCON79數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述CONTROL表、視圖、索引、包、別名、單值類型、用戶定義的函數(shù)和序列提供對(duì)象的所有權(quán)限。在數(shù)據(jù)庫對(duì)象創(chuàng)建時(shí)自動(dòng)分配給對(duì)象的創(chuàng)建者。具有此特權(quán)的用戶還將該對(duì)象上的特權(quán)授予其他用戶或者取消這些特權(quán)。DELETE表和視圖允許用戶從對(duì)象刪除記錄。INSERT表和視圖允許用戶借助INSERT或IMPORT命令將記錄插入對(duì)象。SELECT表和視圖提供使用select語句查看對(duì)象內(nèi)容的能力UPDATE表和視圖允許用戶使用update語句修改對(duì)象內(nèi)的記錄。ALTER表允許用戶使用alter語句修改對(duì)象定義。數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述CONTR80數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述INDEX表允許用戶使用createindex語句在對(duì)象上創(chuàng)建索引。REFERENCES表提供在對(duì)象上創(chuàng)建或刪除外鍵約束的能力。BIND包允許用戶重新聯(lián)編現(xiàn)有的包。EXECUTE包、過程、函數(shù)和方法允許用戶執(zhí)行包和例程。ALTERIN模式允許用戶修改模式內(nèi)的對(duì)象定義。CREATEIN模式允許用戶在模式內(nèi)創(chuàng)建對(duì)象。DROPIN模式允許用戶刪除模式內(nèi)的對(duì)象。數(shù)據(jù)庫對(duì)象特權(quán)特權(quán)名稱相關(guān)對(duì)象描述INDEX81控制對(duì)數(shù)據(jù)庫對(duì)象的存取控制授權(quán)有3種方式:通過使用GRANT和REVOKE語句進(jìn)行顯式授權(quán)通過創(chuàng)建和撤消對(duì)象進(jìn)行隱式授權(quán)與程序包有關(guān)的間接特權(quán)控制對(duì)數(shù)據(jù)庫對(duì)象的存取控制授權(quán)有3種方式:82顯式授權(quán)—授予特權(quán)可以通過GRANT語句進(jìn)行顯式授權(quán)。GRANTprivilegeONobject-typeobject-nameTO[{USER|GROUP|PUBLIC}]authorization-name[WITHGRANTOPTION]WITHGRANTOPTION使獲得授權(quán)的用戶能夠?qū)@得的特權(quán)授予其他用戶。顯式授權(quán)—授予特權(quán)可以通過GRANT語句進(jìn)行顯83示例將employee表的select特權(quán)授予用戶heron,并且heron能將獲得的特權(quán)授予其它用戶。grantselectonemployeetouserheronwithgrantoption將employee表的select特權(quán)授予組herongrantselectonemployeetogroupheron示例將employee表的select特權(quán)授予用戶heron84要授予對(duì)大多數(shù)數(shù)據(jù)庫對(duì)象的特權(quán),用戶必須對(duì)該對(duì)象具有SYSADM權(quán)限、DBADM權(quán)限或CONTROL特權(quán),或者用戶必須持有使用WITHGRANTOPTION授予的特權(quán)。
要將CONTROL特權(quán)授予其它用戶,該用戶必須具有SYSADM或DBADM權(quán)限;要授予DBADM特權(quán),用戶必須具有SYSADM權(quán)限。顯式授權(quán)—授予特權(quán)要授予對(duì)大多數(shù)數(shù)據(jù)庫對(duì)象的特權(quán),用戶必85顯式授權(quán)—撤銷特權(quán)REVOKE語句允許特許用戶撤銷先前授予其他用戶的特權(quán)。
REVOKEprivilegeONobject-typeobject-nameFROM[{USER|GROUP|PUBLIC}]authorization-name要撤銷賦予數(shù)據(jù)庫對(duì)象的特權(quán),必須對(duì)該對(duì)象具有DBADM權(quán)限、SYSADM權(quán)限或CONTROL特權(quán)。要撤銷CONTROL特權(quán),必須具有SYSADM或DBADM權(quán)限;要撤銷DBADM權(quán)限,必須具有SYSADM權(quán)限。顯式授權(quán)—撤銷特權(quán)REVOKE語句允許特許用戶86如果已經(jīng)把一個(gè)特權(quán)授予有相同名稱的一個(gè)用戶和一個(gè)組,當(dāng)撤銷此特權(quán)時(shí)必須指定group或user關(guān)鍵字。從用戶heron撤銷多employee表的select特權(quán)revokeselectonemployeefromuserheron從組heron撤銷多employee表的select特權(quán)revokeselectonemployeefromgroupheron示例如果已經(jīng)把一個(gè)特權(quán)授予有相同名稱的一個(gè)用戶和一個(gè)組,87用戶、用戶組和PUBLICDB2用戶一定是操作系統(tǒng)用戶;PUBLIC是特殊的DB2用戶組,代表所有DB2用戶;在大多數(shù)情況下,一個(gè)用戶擁有的特權(quán)等于授予該用戶的特權(quán)、授予該用戶所在用戶組的特權(quán)以及授予PUBLIC的特權(quán)三者的并集。用戶、用戶組和PUBLICDB2用戶一定是操作系統(tǒng)用戶;88隱式特權(quán)隱式特權(quán)是在用戶執(zhí)行某些操作(通常是創(chuàng)建數(shù)據(jù)庫和數(shù)據(jù)庫對(duì)象以及被授予某些高級(jí)別權(quán)力)時(shí),自動(dòng)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年設(shè)備融資還款合同
- 2024版二人合伙協(xié)議書簡(jiǎn)單一點(diǎn)
- 2024年美甲店與美容師用工合同
- 2024年足浴店項(xiàng)目合作合同3篇
- 2024年門頭翻新施工合同
- 2025年度園林綠化工程鏟車租賃及生態(tài)保護(hù)協(xié)議2篇
- 2024年朋友間借款協(xié)議
- 2024年面料原材料批發(fā)與分銷合同3篇
- 2025年度智能停車設(shè)施施工合同示范文本3篇
- 2024年高端咖啡廳合伙經(jīng)營(yíng)及利潤(rùn)分配合同一
- 供熱企業(yè)安全風(fēng)險(xiǎn)隱患辨識(shí)清單
- HRB500級(jí)鋼筋施工要點(diǎn)ppt課件
- 中醫(yī)內(nèi)科學(xué)----泄瀉精品課件
- 大數(shù)據(jù)平臺(tái)及風(fēng)險(xiǎn)預(yù)警系統(tǒng)采購(gòu)項(xiàng)目需求說明書天津?yàn)I海農(nóng)村商業(yè)銀行【模板】
- 清華抬頭信紙
- 八年級(jí)心理健康教育《自控力——成功的標(biāo)尺》課件
- 施工現(xiàn)場(chǎng)節(jié)電方法
- 水利工程安全生產(chǎn)組織機(jī)構(gòu)
- 廣東省佛山市南海區(qū)人民法院
- 我縣教育發(fā)展面臨的問題及對(duì)策建議
- 口腔修復(fù)學(xué)專業(yè)英語詞匯整理
評(píng)論
0/150
提交評(píng)論