c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第1頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第2頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第3頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第4頁
c9 數(shù)據(jù)庫的安全性及sql serve安全管理_第5頁
已閱讀5頁,還剩52頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

9.1數(shù)據(jù)庫安全性控制的一般方法9.2SQLServer的安全體系結構

9.3SQLServer數(shù)據(jù)庫安全性管理2/1/2023

數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,以防止不合法的使用造成的數(shù)據(jù)泄密、更改或破壞。數(shù)據(jù)庫管理系統(tǒng)安全性保護,就是通過種種防范措施以防止用戶越權使用數(shù)據(jù)庫。安全保護措施是否有效是衡量數(shù)據(jù)庫系統(tǒng)的主要性能指標之一。2/1/20239.1數(shù)據(jù)庫安全性控制的一般方法9.1.1安全性級別數(shù)據(jù)庫的完整性盡可能的避免對數(shù)據(jù)庫的無意濫用。數(shù)據(jù)庫的安全性盡可能避免對數(shù)據(jù)庫的惡意濫用。為了防止數(shù)據(jù)庫的惡意濫用,可以在下述不同的安全級別上設置各種安全措施。

(1)環(huán)境級:對計算機系統(tǒng)的機房和設備加以保護,防止物理破壞。

(2)職員級:對數(shù)據(jù)庫系統(tǒng)工作人員,加強勞動紀律和職業(yè)道德教育,并正確的授予其訪問數(shù)據(jù)庫的權限。

(3)操作系統(tǒng)級:防止未經(jīng)授權用戶從操作系統(tǒng)層著手訪問數(shù)據(jù)庫。

(4)網(wǎng)絡級:由于數(shù)據(jù)庫系統(tǒng)允許用戶通過網(wǎng)絡訪問,因此,網(wǎng)絡軟件內部的安全性對數(shù)據(jù)庫的安全是很重要的。

(5)數(shù)據(jù)庫系統(tǒng)級:檢驗用戶的身份是否合法,檢驗用戶數(shù)據(jù)庫操作權限是否正確。本節(jié)主要討論數(shù)據(jù)庫系統(tǒng)級的安全性問題。2/1/2023

9.1.2數(shù)據(jù)庫安全控制的一般方法數(shù)據(jù)庫系統(tǒng)中一般采用用戶標識和鑒別、存取控制、視圖以及密碼存儲等技術進行安全控制。標識與鑒別

用戶標識和鑒別是DBMS提供的最外層保護措施。用戶每次登錄數(shù)據(jù)庫時都要輸入用戶標識,DBMS進行核對后,對于合法的用戶獲得進入系統(tǒng)最外層的權限。用戶標識和鑒別的方法很多,常用的方法有:身份(Identification)認證用戶的身份,是系統(tǒng)管理員為用戶定義的用戶名(也稱為用戶標識、用戶賬號、用戶ID),并記錄在計算機系統(tǒng)或DBMS中。身份認證,是指系統(tǒng)對輸入的用戶名與合法用戶名對照,鑒別此用戶是否為合法用戶。若是,則可以進入下一步的核實;否則,不能使用系統(tǒng)。2/1/2023口令(Password)認證用戶的口令,是合法用戶自己定義的密碼。為保密起見,口令由合法用戶自己定義并可以隨時變更??诹钫J證是為了進一步對用戶核實。通常系統(tǒng)要求用戶輸入口令,只有口令正確才能進入系統(tǒng)。隨機數(shù)運算認證隨機數(shù)認證實際上是非固定口令的認證,即用戶的口令每次都是不同的。鑒別時系統(tǒng)提供一個隨機數(shù),用戶根據(jù)預先約定的計算過程或計算函數(shù)進行計算,并將計算結果輸送到計算機,系統(tǒng)根據(jù)用戶計算結果判定用戶是否合法。例如算法為:“口令=隨機數(shù)平方的后三位”,出現(xiàn)的隨機數(shù)是36,則口令是296。2/1/2023存取控制(授權機制)DBMS的存取控制機制是數(shù)據(jù)庫安全的一個重要保證,它確保具有數(shù)據(jù)庫使用權限的用戶訪問數(shù)據(jù)庫并進行權限范圍內的操作,同時令未被授權的用戶無法接近數(shù)據(jù)。存取機制的構成

存取控制機制主要包括兩部分:定義用戶權限用戶權限是指用戶對于數(shù)據(jù)對象能夠進行的操作種類。要進行用戶權限定義,DBMS必須提供有關定義用戶權限的語言,該語言稱為數(shù)據(jù)控制語言DCL。進行權限檢查每當用戶發(fā)出存取數(shù)據(jù)庫的操作請求后,DBMS首先查找數(shù)據(jù)字典,進行合法權限檢查。如果用戶的操作請求沒有超出其數(shù)據(jù)操作權限,則準予執(zhí)行其數(shù)據(jù)操作;否則,DBMS將拒絕執(zhí)行此操作。2/1/2023存取機制的類別在自主存取控制方法中,用戶對于不同的數(shù)據(jù)對象可以有不同的存取權限,不同的用戶對同一數(shù)據(jù)對象的存取權限也可以各不相同,用戶還可以將自己擁有的存取權限轉授給其他用戶。在強制存取控制方法中,每一個數(shù)據(jù)對象被標以一定的密級;每一個用戶也被授予某一個級別的許可證。對于任意一個對象,只有具有合法許可證的用戶才可以存取。顯然,自主存取控制比較靈活,強制存取控制比較嚴格。2/1/2023

視圖機制進行存取權限的控制,不僅可以通過授權來實現(xiàn),而且還可以通過定義用戶的外模式來提供一定的安全保護功能。在關系數(shù)據(jù)庫中,可以為不同的用戶定義不同的視圖,通過視圖機制把要保密的數(shù)據(jù)對無權操作的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。對視圖也可以進行授權。視圖機制使系統(tǒng)具有數(shù)據(jù)安全性、數(shù)據(jù)邏輯獨立性和操作簡便等優(yōu)點。2/1/2023

審計方法審計功能就是把用戶對數(shù)據(jù)庫的所有操作自動記錄下來放入審計日志(AuditLog)中,一旦發(fā)生數(shù)據(jù)被非法存取,DBA可以利用審計跟蹤的信息,重現(xiàn)導致數(shù)據(jù)庫現(xiàn)有狀況的一系列事件,找出非法存取數(shù)據(jù)的人、時間和內容等。由于任何系統(tǒng)的安全保護措施都不可能無懈可擊,蓄意盜竊、破壞數(shù)據(jù)的人總是想方設法打破控制,因此審計功能在維護數(shù)據(jù)安全、打擊犯罪方面是非常有效的。由于審計通常是很費時間和空間的,因此DBA要根據(jù)應用對安全性的要求,靈活打開或關閉審計功能。2/1/2023

數(shù)據(jù)加密

對高度敏感數(shù)據(jù)(例如財務、軍事、國家機密等數(shù)據(jù)),除了以上安全性措施外,還應該采用數(shù)據(jù)加密技術。數(shù)據(jù)加密是防止數(shù)據(jù)在存儲和傳輸中失密的有效手段。加密的基本思想是根據(jù)一定的算法將原始數(shù)據(jù)(稱為明文)變換為不可直接識別的格式(稱為密文),從而使得不知道解密算法的人無法獲得數(shù)據(jù)的內容。加密方法主要有兩種:

替換方法使用密鑰將明文中的每一個字符轉換為密文中的字符。

置換方法將明文的字符按不同的順序重新排列。單獨使用這兩種方法的任意一種都是不夠安全的。但是將這兩種方法結合起來就能達到相當高的安全程度。2/1/20239.1.3關系數(shù)據(jù)庫標準語言SQL的自主存取控制方法

SQL標準對自主存取控制提供了支持,其DCL主要是GRANT(授權)語句和REVOKE(收權)語句。關系中的用戶權限用戶權限主要包括數(shù)據(jù)對象和操作類型兩個要素。定義用戶的存取權限稱為授權。

表9-1不同類型數(shù)據(jù)對象的操作權限數(shù)據(jù)對象操作權限表、視圖、列(TABLE)SELECT,INSERT,UPDATE,DELETE,ALLPRIVILEGE基本表(TABLE)ALTER,INDEX數(shù)據(jù)庫(DATABASE)CREATETAB表空間(TABLESPACE)USE系統(tǒng)CREATEDBC2/1/2023

SQL的存取控制功能--授權和收權語句授權(GRANT)語句

格式:GRANT權限[ON對象]TO用戶[WITHGRANTOPTION]

功能:將指定數(shù)據(jù)對象的指定權限授予指定的用戶。

說明:其中,WITHGRANTOPTION選項的作用是允許獲得指定權限的用戶把權限再授予其他用戶。

【例9.1】把對讀者信息表(readers)中的列“姓名”修改、查詢表的權限授予用戶user1的語句可以寫為:

GRANTUPDATE(姓名),SELECTONTABLEreadersTOuser1;

【例9.2】把對表readers,books,borrowinf的查詢、修改、插入和刪除等全部權限授予用戶user1和用戶user2的語句可以寫為:

GRANTALLPRIVILIGESONTABLEreaders,books,borrowinfTOuserl,user2;2/1/2023

【例9.3】

把對表books的查詢權限授予所有用戶。

GRANTSELECTONTABLEbooksTOPUBLIC;

【例9.4】

把在數(shù)據(jù)庫MyDB中建立表的權限授予用戶user2。

GRANTCREATETABONDATABASEMyDBTOuser2;

【例9.5】把對表readers的查詢權限授予用戶user3,并給用戶user3有再授予的權限。

GRANTSELECTONTABLEreadersTOuser3WITHGRANTOPTION;

【例9.6】用戶user3把查詢readers表的權限授予用戶user4。

GRANTSELECTONTABLEreadersTOuser4;2/1/2023回收(REVOKE)語句

格式:REVOKE權限[ON對象]FROM用戶;

功能:把已經(jīng)授予指定用戶的指定權限收回。

【例9.7】把用戶user1修改讀者姓名的權限收回。

REVOKEUPDATE(姓名)ONTABLEreadersFROMuserl;

【例9.8】

把用戶user3查詢readers表的權限收回。

REVOKESELECTONTABLEreadersFROMuser3;2/1/20239.2SQLServer的安全體系結構

9.2.1SQLServer2000的安全體系結構SQLServer2000提供以下4層安全防線:操作系統(tǒng)的安全防線

Windows(WindiwsNT或Windows2000Server等)網(wǎng)絡管理員負責建立用戶組,設置賬號并注冊,同時決定不同用戶對不同系統(tǒng)資源的訪問級別。SQLServer的運行安全防線

SQLServer通過登錄賬號設置來創(chuàng)建附加安全層。用戶只有登錄成功,才能與SQLServer建立一次連接。SQLServer數(shù)據(jù)庫的安全防線

SQLServer的特定數(shù)據(jù)庫都有自己的用戶和角色,該數(shù)據(jù)庫只能由它的用戶或角色訪問,其他用戶無權訪問其數(shù)據(jù)。SQLServer數(shù)據(jù)庫對象的安全防線

SQLServer可以對權限進行管理。保證合法用戶即使進入了數(shù)據(jù)庫也不能有超越權限的數(shù)據(jù)存取操作,即合法用戶必須在自己的權限范圍內進行數(shù)據(jù)操作。2/1/2023

9.2.2SQLServer2000的安全認證模式

SQLServer2000的安全認證模式安全認證是指數(shù)據(jù)庫系統(tǒng)對用戶訪問數(shù)據(jù)庫系統(tǒng)時所輸入的賬號和口令進行確認的過程。安全性認證模式是指系統(tǒng)確認用戶身份的方式。SQLServer2000有兩種安全認證模式,即Windows安全認證模式和SQLServer安全認證模式。Windows安全認證模式

Windows安全認證模式是指SQLServer服務器通過使用Windows網(wǎng)絡用戶的安全性來控制用戶對SQLServer服務器的登錄訪問。SQLServer的安全認證模式

SQLServer安全認證模式要求用戶必須輸入有效的SQLServer登錄賬號及口令。這個登錄賬號是獨立于操作系統(tǒng)的登錄賬號的,從而可以在一定程度上避免操作系統(tǒng)層上對數(shù)據(jù)庫的非法訪問。2/1/2023設置SQLServer2000的安全認證模式使用SQLServer2000企業(yè)管理器功能選擇需要的安全認證模式,其步驟如下:1)在企業(yè)管理器中擴展開SQL服務器組,右擊需要設置的SQL服務器,在彈出的菜單中選擇【編輯SQLServer注冊屬性】命令。

2)在彈出的“已注冊的SQLServer屬性”對話框(見圖9-1)的【連接】區(qū)域有身份驗證的兩個單選框。單擊【使用Windows身份驗證[W]】為選擇集成安全認證模式;單擊【使用SQLServer身份驗證[Q]】則為選擇SQLServer2000安全認證模式。2/1/2023圖9-1編輯已注冊的SQLServer屬性對話框2/1/20239.3SQLServer數(shù)據(jù)庫安全性管理

SQLServer的安全性管理包括以下幾個方面:數(shù)據(jù)庫系統(tǒng)登錄管理、數(shù)據(jù)庫用戶管理、數(shù)據(jù)庫系統(tǒng)角色管理以及數(shù)據(jù)庫訪問權限的管理。9.3.1數(shù)據(jù)庫系統(tǒng)登錄管理登錄賬號登錄賬號也稱為登錄用戶或登錄名,是服務器級用戶訪問數(shù)據(jù)庫系統(tǒng)的標識。為了訪問SQLServer系統(tǒng),用戶必須提供正確的登錄賬號,這些登錄賬號既可以是Windows登錄賬號,也可以是SQLServer登錄賬號。2/1/2023查看登錄賬號使用企業(yè)管理器可以創(chuàng)建、查看和管理登錄賬號?!暗卿涃~號”存放在SQL服務器的安全性文件夾中。當進入企業(yè)管理器,打開指定的SQL服務器組和SQL服務器,并選擇【安全性】文件夾的系列操作后,就會出現(xiàn)如圖9-2所示的屏幕窗口。通過該窗口可以看出安全性文件夾包括4個文件夾:登錄、服務器角色、連接服務器和遠程服務器。單擊【登錄】可以看到當前數(shù)據(jù)庫服務器的合法登錄用戶的一些信息。編輯或刪除登錄賬號單擊【登錄】文件夾,在出現(xiàn)的顯示登錄賬號的窗口中,用鼠標右擊需要操作的登錄號:選擇【屬性】便可對該用戶已設定內容進行重新編輯;選擇【刪除】便可刪除該登錄用戶。進行上述操作需要對當前服務器擁有管理登錄(SecurityAdministrators)及其以上的權限。2/1/2023圖9-2安全性文件夾的屏幕界面2/1/2023圖9-3新建登錄對話框

2/1/2023

9.3.2數(shù)據(jù)庫用戶管理用戶賬號用戶賬號是某個數(shù)據(jù)庫的訪問標識。在SQLServer的數(shù)據(jù)庫中,對象的全部權限均由用戶賬號控制。用戶賬號可以與登錄賬號相同也可以不想同。數(shù)據(jù)庫用戶必須是登錄用戶。登錄用戶只有成為數(shù)據(jù)庫用戶(或數(shù)據(jù)庫角色)后才能訪問數(shù)據(jù)庫。用戶賬號與具體的數(shù)據(jù)庫有關。在該表中每一行數(shù)據(jù)表示一個SQLServer用戶或SQLServer角色信息。創(chuàng)建數(shù)據(jù)庫的用戶稱為數(shù)據(jù)庫所有者(dbo),他具有這個數(shù)據(jù)庫的所有權限。系統(tǒng)管理員sa是他所管理系統(tǒng)的任何數(shù)據(jù)庫的dbo用戶。2/1/2023查看用戶賬號使用企業(yè)管理器可以創(chuàng)建、查看和管理數(shù)據(jù)庫用戶。每個數(shù)據(jù)庫中都有“用戶”文件夾。當進入企業(yè)管理器,打開指定的SQL服務器組和SQL服務器,并打開【數(shù)據(jù)庫】文件夾,選定并打開要操作的數(shù)據(jù)庫后,單擊【用戶】文件夾就會出現(xiàn)如圖9-4所示的用戶信息窗口。通過該窗口可以看到當前數(shù)據(jù)庫合法用戶的一些信息。圖9-4查看用戶信息窗口2/1/2023創(chuàng)建新的數(shù)據(jù)庫用戶創(chuàng)建新的數(shù)據(jù)庫用戶有兩種方法。在創(chuàng)建登錄用戶時,指定他作為數(shù)據(jù)庫用戶的身份

例如,在圖9-3新建登錄對話框中,輸入登錄名稱(如user1),單擊【數(shù)據(jù)庫訪問】選項卡,在【指定此登錄可以訪問的數(shù)據(jù)庫[S]】區(qū)域的【許可】欄目下指定訪問數(shù)據(jù)庫(如MyDb),如圖9-5所示,登錄用戶user1同時也成為數(shù)據(jù)庫MyDb的用戶。單獨創(chuàng)建數(shù)據(jù)庫用戶這種方法適于在創(chuàng)建登錄賬號時沒有創(chuàng)建數(shù)據(jù)庫用戶的情況,操作步驟如下:右擊【用戶】文件夾,在彈出的菜單中選擇【新建數(shù)據(jù)庫用戶】命令后,會出現(xiàn)圖9-6所示新建用戶對話框界面,在【登錄名】下拉框中選擇預創(chuàng)建用戶對應的登錄名,然后在【用戶名】的文本框中鍵入用戶名即可。如圖9-6所示。通過此界面也可以設定該數(shù)據(jù)庫用戶的權限和角色的成員。2/1/2023圖9-5創(chuàng)建登錄時指定登錄用戶同時作為數(shù)據(jù)庫用戶界面2/1/2023圖9-6單獨創(chuàng)建數(shù)據(jù)庫用戶對話框2/1/2023編輯或刪除數(shù)據(jù)庫用戶賬號單擊【用戶】文件夾,在出現(xiàn)的顯示用戶賬號的窗口中,右擊需要操作的用戶賬號,選擇【屬性】命令,出現(xiàn)該用戶的角色和權限窗口,可對該用戶已設定內容進行重新編輯;選擇【刪除】便可刪除該數(shù)據(jù)庫用戶。進行上述操作需要對當前數(shù)據(jù)庫擁有用戶管理及其以上的權限。2/1/2023

9.3.3數(shù)據(jù)庫系統(tǒng)角色管理在SQLServer2000中可以把某些用戶設置成某一角色,這些用戶稱為該角色的成員。當對該角色進行權限設置時,其成員自動繼承該角色的權限。

SQLServer中有兩種角色,即服務器角色和數(shù)據(jù)庫角色。服務器角色一臺計算機可以承擔多個SQLServer服務器的管理任務。固定服務器角色是對服務器級用戶即登錄賬號而言的。它是指在登錄時授予該登錄賬號對當前服務器范圍內的權限。這類角色可以在服務器上進行相應的管理操作,完全獨立于某個具體的數(shù)據(jù)庫。固定服務器角色的信息存儲在master數(shù)據(jù)庫的sysxlogins系統(tǒng)表中。SQLServer2000提供了8種固定服務器角色,如圖9-7所示。2/1/2023圖9-7固定服務器角色

2/1/2023可以使用企業(yè)管理器將登錄賬號添加到某一指定的固定服務器角色作為其成員。步驟如下:登錄服務器后,展開【安全性】文件夾,單擊【服務器角色】文件夾,則會出現(xiàn)圖9-7所示的固定服務器角色窗口,右擊某一角色,在彈出的菜單中選擇【屬性】命令,可以查看該角色的權限,并可以添加某些登錄賬號作為該角色的成員,也可以將某一登錄賬號從該角色的成員中刪除。注意:

(1)固定服務器角色不能被刪除、修改和增加;

(2)固定服務器角色的任何成員都可以將其他的登錄賬號增加到該服務器角色中。

2/1/2023數(shù)據(jù)庫角色在一個服務器上可以創(chuàng)建多個數(shù)據(jù)庫。數(shù)據(jù)庫角色對應于單個數(shù)據(jù)庫。數(shù)據(jù)庫的角色分為固定數(shù)據(jù)庫角色和用戶定義的數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色是指SQLServer2000為每個數(shù)據(jù)庫提供的固定角色。SQLServer2000允許用戶自己定義數(shù)據(jù)庫角色,稱為用戶定義的數(shù)據(jù)庫角色。固定數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色的信息存儲在sysuers系統(tǒng)表中。SQLServer2000提供了10種固定數(shù)據(jù)庫角色,如表9-3所示。

2/1/2023角色描述public維護默認的許可db_owner執(zhí)行數(shù)據(jù)庫中的任何操作db_accessadmin可以增加或刪除數(shù)據(jù)庫用戶、組和角色db_addladmin增加、修改或刪除數(shù)據(jù)庫對象db_securityadmin執(zhí)行語句和對象權限管理db_backupoperator備份和恢復數(shù)據(jù)庫db_datareader檢索任意表中的數(shù)據(jù)db_datawriter增加、修改和刪除所有表中的數(shù)據(jù)db_denydatareader不能檢索任意一個表中數(shù)據(jù)db_denydatawriter不能修改任意一個表中的數(shù)據(jù)表9-3固定數(shù)據(jù)庫角色

2/1/2023可以使用企業(yè)管理器查看固定數(shù)據(jù)庫角色,還可以將某些數(shù)據(jù)庫用戶添加到固定數(shù)據(jù)庫角色中,使數(shù)據(jù)庫用戶成為該角色的成員。也可以將固定數(shù)據(jù)庫角色的成員刪除。將用戶添加到某一數(shù)據(jù)庫角色的步驟為:打開指定的數(shù)據(jù)庫,單擊【角色】文件夾,右擊某個固定數(shù)據(jù)庫角色,在出現(xiàn)的菜單中選擇【屬性】命令,就會出現(xiàn)圖9-8所示的數(shù)據(jù)庫角色屬性對話框,單擊【添加】按鈕,則會出現(xiàn)該角色的非成員用戶,按提示信息操作可以將他們添加到該角色中;選中某一用戶后,單擊【刪除】按鈕可以將此用戶從該角色中刪除。

注意:(1)SQLServer2000提供的10種固定數(shù)據(jù)庫角色不能被刪除和修改。(2)固定數(shù)據(jù)庫角色的成員可以增加其他用戶到該角色中。2/1/2023圖9-8數(shù)據(jù)庫角色屬性對話框

2/1/2023

用戶定義的數(shù)據(jù)庫角色在許多情況下,固定數(shù)據(jù)庫角色不能滿足要求,需要用戶自定義數(shù)據(jù)庫新角色。使用企業(yè)管理器創(chuàng)建數(shù)據(jù)庫角色的步驟為:在企業(yè)管理器中打開要操作的數(shù)據(jù)庫文件夾,右擊【角色】文件夾,并在彈出的菜單中選擇【新建數(shù)據(jù)庫角色】命令,則出現(xiàn)新建數(shù)據(jù)庫角色對話框如圖9-9所示,按提示回答角色名稱等相應信息后,單擊【確定】按鈕即可。在新建數(shù)據(jù)庫角色對話框中可完成3種操作:在名稱欄中輸入新角色名;在用戶欄中添加或刪除角色中的用戶;確定數(shù)據(jù)庫角色的類型。用戶定義的數(shù)據(jù)庫角色類型有兩種:標準角色(StandardRole)和應用程序角色(ApplicationRole)。標準角色用于正常的用戶管理,它可以包括成員。而應用程序角色是一種特殊角色,需要指定口令,是一種安全機制。2/1/2023圖9-9新增數(shù)據(jù)庫角色對話框圖9-10數(shù)據(jù)庫角色權限設置對話框

2/1/2023對用戶定義的數(shù)據(jù)庫角色,可以設置或修改其權限。使用企業(yè)管理器進行操作的步驟為:打開操作數(shù)據(jù)庫,選中用戶定義的數(shù)據(jù)庫角色,右擊此角色在彈出的菜單中選擇【屬性】命令,然后單擊【權限】按鈕,則會出現(xiàn)當前數(shù)據(jù)庫的全部數(shù)據(jù)對象以及該角色的權限標記(若對角色設置過權限,也可以僅列出該角色具有權限的數(shù)據(jù)對象)。如圖9-10所示。單擊數(shù)據(jù)庫角色權限設置對話框中數(shù)據(jù)對象訪問權限的選擇方格有三種狀況:

√:授予權限。表示授予當前角色對指定的數(shù)據(jù)對象的該項操作權限。

×:禁止權限。表示禁止當前角色對指定的數(shù)據(jù)對象的該項操作權限。

空:撤消權限。表示撤銷當前角色對指定的數(shù)據(jù)對象的該項操作權限。使用企業(yè)管理器也可以刪除用戶定義的數(shù)據(jù)庫角色。步驟為:打開操作數(shù)據(jù)庫,選中用戶定義的數(shù)據(jù)庫角色,右擊此角色在彈出的菜單中選擇【刪除】命令即可。2/1/20239.3.4SQLServer權限管理權限的種類

SQLServer2000使用權限來加強系統(tǒng)的安全性,通常權限可以分為三種類型:對象權限、語句權限和隱含權限。對象權限對象權限是用于控制用戶對數(shù)據(jù)庫對象執(zhí)行某些操作的權限。數(shù)據(jù)庫對象通常包括表、視圖、存儲過程。對象權限是針對數(shù)據(jù)庫對象設置的,它由數(shù)據(jù)庫對象所有者授予、禁止或撤消。語句權限語句權限是用于控制數(shù)據(jù)庫操作或創(chuàng)建數(shù)據(jù)庫中的對象操作的權限。語句權限用于語句本身,它只能由SA或dbo授予、禁止或撤消。語句權限的授予對象一般為數(shù)據(jù)庫角色或數(shù)據(jù)庫用戶。

2/1/2023Transact-SQL數(shù)據(jù)庫對象SELECT(查詢)表、視圖、表和視圖中的列UPDATE(修改)表、視圖、表的列INSERT(插入)表、視圖DELETE(刪除)表、視圖EXECUTE(調用過程)存儲過程DRI(聲明參照完整性)表、表中的列表9-4對象權限適用的對象和語句2/1/2023Transact-SQL語句權限說明CREATEDATABASE創(chuàng)建數(shù)據(jù)庫,只能由SA授予SQL服務器用戶或角色CREATEDEFAULT創(chuàng)建缺省CREATEPROCEDURE創(chuàng)建存儲過程CREATERULE創(chuàng)建規(guī)則CREATETABLE創(chuàng)建表CREATEVIEW創(chuàng)建視圖BACKUPDATABASE備份數(shù)據(jù)庫

表9-5語句權限適用的語句和權限說明

2/1/2023隱含權限隱含權限指系統(tǒng)預定義而不需要授權就有的權限,包括固定服務器角色成員、固定數(shù)據(jù)庫角色成員、數(shù)據(jù)庫所有者(dbo)和數(shù)據(jù)庫對象所有者(dboo)所擁有的權限。

例如,sysadmin固定服務器角色成員可以在服務器范圍內做任何操作,dbo可以對數(shù)據(jù)庫做任何操作,dboo可以對其擁有的數(shù)據(jù)庫對象做任何操作,對他不需要明確的賦予權限。2/1/2023權限的管理對象權限的管理可以通過兩種方法實現(xiàn):一種是通過對象管理它的用戶及操作權限,另一種是通過用戶管理對應的數(shù)據(jù)庫對象及操作權限。具體使用哪種方法要視管理的方便性來決定。通過對象授予、撒消或禁止對象權限如果一次要為多個用戶(角色)授予、撤消或禁止對某一個數(shù)據(jù)庫對象的權限時,應采用通過對象的方法實現(xiàn)。在SQLServer的企業(yè)管理器中,實現(xiàn)對象權限管理的操作步驟如下:

1)展開企業(yè)管理器窗口,打開【數(shù)據(jù)庫】文件夾,展開要操作的數(shù)據(jù)庫(如MyDb),右擊指定的對象(如readers表)。

2)在彈出的菜單中,選擇【所有任務】,在彈出的子菜單中選擇【管理權限】命令,此時會出現(xiàn)一個對象權限對話框,如圖9-11所示。2/1/2023

圖9-11數(shù)據(jù)庫對象權限對話框

2/1/2023

3)對話框的上部,有兩個單選框如圖9-11所示,可以根據(jù)需要選擇一個。一般選擇【列出全部用戶】→【用戶定義的數(shù)據(jù)庫角色/public】。

4)對話框的下面是有關數(shù)據(jù)庫用戶和角色所對應的權限表。這些權限均以復選框的形式表示。復選框有三種狀態(tài):“√”(授予權限)、“×”(禁止權限)、空(撤消權限)。在表中可以對各用戶或角色的各種對象操作權限(SELECT、INSERT、UPDATE、DELETE、EXEC和DRI)進行授予、禁止或撤消,單擊復選框可改變其狀態(tài)。

5)完成后單擊【確定】按鈕。2/1/2023圖9-12數(shù)據(jù)庫角色權限屬性對話框2/1/2023通過用戶或角色授予、撤消或禁止對象權限如果要為一個用戶或角色同時授予、撤消或者禁止多個數(shù)據(jù)庫對象的使用權限,則可以通過用戶或角色的方法進行。例如要對“MyDb”數(shù)據(jù)庫中的“數(shù)據(jù)輸入”角色進行授權操作,在企業(yè)管理器中,通過用戶或角色授權(或收權)的操作步驟如下:

1)擴展開SQL服務器和【數(shù)據(jù)庫】文件夾,單擊數(shù)據(jù)庫【MyDb】,單擊【用戶】或【角色】。本例單擊【角色】。在窗口中找到要選擇的用戶或角色,本例為【數(shù)據(jù)輸入】角色,右擊該角色,在彈出菜單中選擇【屬性】命令后,出現(xiàn)如圖9-12所示數(shù)據(jù)庫角色屬性對話框。

2)在數(shù)據(jù)庫角色屬性對話框中,單擊【權限】按鈕,會出現(xiàn)如圖9-13所示的數(shù)據(jù)庫角色權限屬性對話框。2/1/2023

圖9-13數(shù)據(jù)庫角色權限屬性對話框2/1/2023

4)在對話框的權限列表中,對每個對象進行授予、撤消或禁止權限操作。在權限表中,權限SELECT、INSERT、UPDATE等安排在列中,每個對象的操作權用一行表示。在相應的復選框上,如果為“√”則為授權,為“×”則為禁止權限,如果為空白則為撤消權限。單擊復選框可改變其狀態(tài)。

5)完成后,單擊【確定】按鈕。返回數(shù)據(jù)庫角色屬性對話框后,再單擊【確定】按鈕。

2/1/2023語句權限的管理

SQLServer的企業(yè)管理器中還提供了管理語句權限的方法,其操作的具體步驟如下:

1)展開SQL服務器和【數(shù)據(jù)庫】文件夾,右擊要操作的數(shù)據(jù)庫文件夾,如【MyDb】數(shù)據(jù)庫,并在彈出菜單中選擇【屬性】命令,會出現(xiàn)數(shù)據(jù)庫屬性對話框。

2)在數(shù)據(jù)庫屬性對話框中,選擇【權限】選項卡,出現(xiàn)數(shù)據(jù)庫用戶及角色的語句權限對話框,如圖9-14所示。在對話框的列表欄中,單擊表中的各復選框可分別對各用戶或角色授予、撤消或禁止數(shù)據(jù)庫的語句操作權限。復選框內的“√”表示授予權限,“×”表示禁止權限,空白表示撤消權限。

3)完成后單擊【確定】按鈕。

2/1/2023圖9-14數(shù)據(jù)庫用戶和角色的語句權限對話框2/1/2023使用Transact-SQL語句管理權限

SQLServer2000的安全性管理,不僅可以通過SQLServer的企業(yè)管理器的相應操作實現(xiàn),還可以在查詢分析器中通過Transact-SQL語句實現(xiàn)。這里只介紹用Transact-SQL語句實現(xiàn)權限管理,其語句格式與本章9.1.3小節(jié)中介紹的標準SQL的類似。授予權限語句-GRANT語句授權

【例9.9】將創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表的權限授予用戶user1和user2。

USEMyDb

GRANTCREATETABLETOuser2

通過查看數(shù)據(jù)庫MyDb【屬性】的【權限】項,可以看到用戶user2擁有創(chuàng)建表的語句權限。2/1/2023對象授權

注意:SQ

溫馨提示

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

最新文檔

評論

0/150

提交評論