SQL2008安全及權限_第1頁
SQL2008安全及權限_第2頁
SQL2008安全及權限_第3頁
SQL2008安全及權限_第4頁
SQL2008安全及權限_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第1章章 安全與權限安全與權限第第1章章 安全與權限安全與權限 1.1 安全與權限的基礎知識安全與權限的基礎知識1.1.1 SQL server 2008安全機制的總體策略遠程網(wǎng)絡主機通過Internet訪問SQL server 2008服務器所在的網(wǎng)絡,這由網(wǎng)絡環(huán)境提供某種保護機制。(2) 網(wǎng)絡中的主機訪問SQL server 2008服務器,這首先要求對SQL Server進行正確配置,其內容將要在下一節(jié)中介紹;其次是要求擁有對SQL server 2008實例的訪問權 登錄名。(3) 訪問SQL server 2008數(shù)據(jù)庫,這要求擁有對SQL server 2008數(shù)據(jù)庫的訪問權數(shù)據(jù)

2、庫用戶。(4) 訪問SQL server 2008數(shù)據(jù)庫中的表和列,這要求擁有對表和列的訪問權 權限。安全對象Server 角色SQL Server 登錄Windows 組域用戶賬戶本地用戶賬戶用戶數(shù)據(jù)庫角色應用程序角色組SQL Server數(shù)據(jù)庫數(shù)據(jù)庫Windows文件密鑰服務器架構數(shù)據(jù)庫安全對象權限主體主體1.1.2 安全對象安全對象SQL Server2008的安全機制的安全機制nSQL Server2008的安全機制可以分為四個級的安全機制可以分為四個級別:別:q操作系統(tǒng)的安全性操作系統(tǒng)的安全性qSQL Server2008的登錄安全性的登錄安全性q數(shù)據(jù)庫的使用安全性數(shù)據(jù)庫的使用安全性

3、q數(shù)據(jù)庫對象的使用安全性數(shù)據(jù)庫對象的使用安全性SQL Server 2008 權限Server 角色SQL Server 登錄Windows 組域用戶賬戶本地用戶賬戶用戶數(shù)據(jù)庫角色應用程序角色組SQL Server數(shù)據(jù)庫數(shù)據(jù)庫Windows文件密鑰CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKE OWNERSHIPVIEW DEFINITIONBACKUP授予授予/撤銷撤銷/拒絕拒絕ACL服務器架構數(shù)據(jù)庫安全對象權限主體主體1.1.3 SQL Server 2008 權限權限nWindows 身份驗證模式 q用戶由

4、 Windows 授權,適用于當數(shù)據(jù)庫僅在組織內部訪問時。 q通過登錄而被授予 SQL Server 的訪問權 n混合身份驗證模式 q用戶通過一個受信任連接連接到 SQL Server 并使用 Windows 身份驗證來訪問 SQL Server q適用于當外界的用戶需要訪問數(shù)據(jù)庫時或當用戶不能使用WINDOWS域時。SQL Server 身份驗證模式1.2.1 SQL Server 2008的身份認證模式的身份認證模式 1Windows 身份驗證模式身份驗證模式 當使用Windows身份驗證連接到SQL Server時, Microsoft Windows將完全負責對客戶端進行身份驗證。在這

5、種情況下,將按其Windows用戶賬戶來識別客戶端。當用戶通過Windows用戶賬戶進行連接時,SQL Server使用Windows操作系統(tǒng)中的信息驗證賬戶名和密碼,這是SQL Server默認的身份驗證模式,比混合模式安全的多。 1.2.1 SQL Server 2008的身份認證模的身份認證模式式2混合身份驗證模式混合身份驗證模式n混合驗證模式允許以SQL Server身份驗證模式或者Windows身份驗證模式來進行驗證。n使用哪個模式取決于在最初的通信時使用的網(wǎng)絡庫。n如果一個用戶使用TCP/IP Sockets進行登錄驗證,則使用SQL Server身份驗證模式;如果用戶使用命名管道

6、,則登錄時將使用Windows驗證模式。n這種模式能更好地適應用戶的各種環(huán)境。 1. 設置身份驗證模式 通過圖形化界面設置身份驗證模式通過圖形化界面設置身份驗證模式 第步第步 :打開:打開SQL Server Management studio,SQL Server Management studio,使用使用WINDOWSWINDOWS或或SQL SERVERSQL SERVER身份驗證建立連接。身份驗證建立連接。 第第2 2步步:對象資源管理器:對象資源管理器- -服務器右擊服務器右擊- -屬性屬性- -服服務器屬性務器屬性 第第3 3步步: 選擇安全性選擇安全性- -在此設置身份驗證模式

7、在此設置身份驗證模式1.3 數(shù)據(jù)庫賬戶 在SQL Server中,賬號有兩種:一種是登錄服務器的登錄賬號,另外一種就是使用數(shù)據(jù)庫的用戶賬號。登錄賬號只是讓用戶登錄到SQL Server中,登錄名本身并不能讓用戶訪問服務器中的數(shù)據(jù)庫。 要訪問特定的數(shù)據(jù)庫,還必須具有用戶名。用戶名在特定的數(shù)據(jù)庫內創(chuàng)建,并關聯(lián)一個登錄名(當一個用戶創(chuàng)建時,必須關聯(lián)一個登錄名)。通過授權給用戶來指定用戶可以訪問的數(shù)據(jù)庫對象的權限。 1.3.1 服務器的登錄賬號 創(chuàng)建登錄賬號時需要指出該賬號使用的是Windows身份驗證還是使用的SQL Server身份驗證。 1使用使用Windows身份驗證的登錄身份驗證的登錄2使用

8、使用SQL Server身份驗證的登錄身份驗證的登錄1.3.2 數(shù)據(jù)庫用戶賬戶 一般情況下,用戶登錄SQL Server實例后,還不具備訪問數(shù)據(jù)庫的條件。在用戶可以訪問數(shù)據(jù)庫之前,管理員必須為該用戶在數(shù)據(jù)庫中建立一個數(shù)據(jù)庫賬號作為訪問該數(shù)據(jù)庫的ID。這個過程就是將SQL Server登錄賬號映射到需要訪問的每個數(shù)據(jù)庫中,這樣才能夠訪問數(shù)據(jù)庫。如果數(shù)據(jù)庫中沒有用戶賬戶,則即使用戶能夠連接到SQL Server實例也無法訪問到該數(shù)據(jù)庫。 1默認的數(shù)據(jù)庫用戶默認的數(shù)據(jù)庫用戶2添加數(shù)據(jù)庫用戶添加數(shù)據(jù)庫用戶3刪除數(shù)據(jù)庫用戶刪除數(shù)據(jù)庫用戶創(chuàng)建數(shù)據(jù)庫用戶的方法n創(chuàng)建數(shù)據(jù)庫用戶可分為兩個過程:創(chuàng)建數(shù)據(jù)庫用戶可

9、分為兩個過程:q首先創(chuàng)建數(shù)據(jù)庫用戶使用的首先創(chuàng)建數(shù)據(jù)庫用戶使用的SQL Server2008登登錄名,如果使用內置的登錄名則可省略這一步。錄名,如果使用內置的登錄名則可省略這一步。q其次為數(shù)據(jù)庫創(chuàng)建用戶,指定到創(chuàng)建的登錄名。其次為數(shù)據(jù)庫創(chuàng)建用戶,指定到創(chuàng)建的登錄名。n用用 SQL Server Management Studio 或或 CREATE USER 語句創(chuàng)建用戶語句創(chuàng)建用戶1.3.1 管理用戶的方法管理用戶的方法n下面通過SQL Server Management studio工具來創(chuàng)建數(shù)據(jù)庫用戶帳戶,然后給用戶授予訪問【教務管理系統(tǒng)】數(shù)據(jù)庫的權限。1、展開【服務器】|【數(shù)據(jù)庫】|【

10、教務管理系統(tǒng)】節(jié)點。2、再展開【安全性】|【用戶】節(jié)點并右擊,選擇【新建用戶】,打開【數(shù)據(jù)庫用戶-新建】3、在【用戶名】文本框中輸入dur_suna來指定要創(chuàng)建的數(shù)據(jù)庫用戶名稱4、單擊【登錄名】文本框旁邊的【選項】,打開【選擇登錄名】窗口,然后單擊【瀏覽】按鈕,彈出【查找對象】對話框。5、啟用suna旁邊的復選框,單擊確定按鈕,返回【選擇登錄名】窗口,單擊確定,返回【數(shù)據(jù)庫用戶-新建】窗口6、用同樣的方式,選擇【默認架構】為dbo7、單擊確定按鈕8、為了驗證是否創(chuàng)建成功,可以展開用戶節(jié)點1.4 固定服務器角色 服務器角色獨立于各個數(shù)據(jù)庫。如果我們在SQL Server中創(chuàng)建一個登錄賬號后,要賦

11、予該登錄者具有管理服務器的權限,此時可設置該登錄賬號為服務器角色的成員。SQL Server提供了以下固定服務器角色: 內置服務器角色1.4.2 服務器角色管理服務器角色管理 通過圖形化界面實現(xiàn)服務器角色管理通過圖形化界面實現(xiàn)服務器角色管理 第第1步步 以系統(tǒng)管理員身份登錄到SQL Server服務器,在登錄圖標對應的列表項中,選擇登錄賬號“zhou”的項目雙擊; 第第2步步 選擇“服務器角色” 選項卡,如圖8.9所示,選項卡中列出了SQL Server所有的固定服務器角色,將“System administrators”服務器角色前的復選框選中。圖圖8.9 SQL Server服務器角色設置

12、窗口服務器角色設置窗口1.4.2 服務器角色管理服務器角色管理 2. 利用系統(tǒng)存儲過程實現(xiàn)服務器角色管理利用系統(tǒng)存儲過程實現(xiàn)服務器角色管理 利用系統(tǒng)存儲過程sp_addsrvrolemember可將一登錄賬號添加到某一固定服務器角色中,使其成為固定服務器角色的成員。語法格式語法格式: sp_addsrvrolemember login,role 參數(shù)含義: login:添加到固定服務器角色role的登錄賬號名, 【例例8.6】 將 Windows NT 用戶 dreamzhouym 添加到 sysadmin 固定服務器角色中。EXEC sp_addsrvrolemember dreamzhou

13、ym , sysadmin 1.4.2 服務器角色管理服務器角色管理利用sp_dropsrvrolemember系統(tǒng)存儲過程可從固定服務器角色中刪除SQL Server 登錄賬號或Windows NT用戶或組。【例例8.7】從 sysadmin 固定服務器角色中刪除登錄 zhou。 EXEC sp_dropsrvrolemember zhou, sysadmin 利用sp_srvrolepermission系統(tǒng)存儲過程可以瀏覽固定服務器角色的權限。1.5 數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色 授予了管理公共數(shù)據(jù)庫任務的權限 用戶定義的數(shù)據(jù)庫角色用戶定義的數(shù)據(jù)庫角色相同數(shù)據(jù)庫權限的多個用戶 應

14、用程序角色應用程序角色包含數(shù)據(jù)庫中所有用戶5.3.3 數(shù)據(jù)庫角色數(shù)據(jù)庫角色1.5.1 固定的數(shù)據(jù)庫角色固定的數(shù)據(jù)庫角色 1通過管理器工具瀏覽固定的數(shù)據(jù)庫角色通過管理器工具瀏覽固定的數(shù)據(jù)庫角色 第步第步 打開對象資源管理器,選擇任意一個數(shù)據(jù)庫名。打開對象資源管理器,選擇任意一個數(shù)據(jù)庫名。 第第2 2步步 展開數(shù)據(jù)庫的節(jié)點,選擇展開數(shù)據(jù)庫的節(jié)點,選擇【安全性安全性】 第第3 3步步 在在【安全性安全性】下選擇下選擇【角色角色】,展開節(jié)點,然后選擇,展開節(jié)點,然后選擇【數(shù)數(shù)據(jù)庫角色據(jù)庫角色】,就可以看到系統(tǒng)默認的固定數(shù)據(jù)庫角色了,就可以看到系統(tǒng)默認的固定數(shù)據(jù)庫角色了 2.使用系統(tǒng)存儲過程瀏覽固定的數(shù)

15、據(jù)庫角色瀏覽固定的數(shù)據(jù)庫角色 EXEC SP_HELPdbfixedrole go1.5.1 固定的數(shù)據(jù)庫角色固定的數(shù)據(jù)庫角色n1. 固定數(shù)據(jù)庫角色固定數(shù)據(jù)庫角色n 固定數(shù)據(jù)庫角色定義在數(shù)據(jù)庫級別上,并且有權進行特定數(shù)據(jù)庫的管理及操作。SQL Server提供了以下固定數(shù)據(jù)庫角色:n (1)db_owner:數(shù)據(jù)庫所有者,可執(zhí)行數(shù)據(jù)庫的所有管理操作。n SQL Server 數(shù)據(jù)庫中的每個對象都有所有者,通常創(chuàng)建該對象的用戶即為其所有者。其他用戶只有在相應所有者對其授權后,方可訪問該對象。n (2)db_accessadmin:數(shù)據(jù)庫訪問權限管理者,具有添加、刪除數(shù)據(jù)庫使用者、數(shù)據(jù)庫角色和組的

16、權限。n 1.5.1 固定的數(shù)據(jù)庫角色固定的數(shù)據(jù)庫角色n(3)db_securityadmin:數(shù)據(jù)庫安全管理員,可管理數(shù)據(jù)庫中的權限,如設置數(shù)據(jù)庫表的增、刪、修改和查詢等存取權限。n (4)db_ddladmin:數(shù)據(jù)庫DDL管理員,可增加、修改或刪除數(shù)據(jù)庫中的對象。n (5)db_backupoperator:數(shù)據(jù)庫備份操作員,具有執(zhí)行數(shù)據(jù)庫備份的權限。n (6)db_datareader:數(shù)據(jù)庫數(shù)據(jù)讀取者。n (7)db_datawriter:數(shù)據(jù)庫數(shù)據(jù)寫入者,具有對表進行增、刪修改的權限。n (8)db_denydatareader:數(shù)據(jù)庫拒絕數(shù)據(jù)讀取者,不能讀取數(shù)據(jù)庫中任何表的內容n

17、9)db_denydatawriter:數(shù)據(jù)庫拒絕數(shù)據(jù)寫入者,不能對任何表進行增、刪修改操作。n (10)public:是一個特殊的數(shù)據(jù)庫角色,每個數(shù)據(jù)庫用戶都是public 角色的成員,因此,不能將用戶、組或角色指派為public角色的成員,也不能刪除public角色的成員。通常將一些公共的權限賦給public角色。5.5.2 用戶自定義數(shù)據(jù)庫角色用戶自定義數(shù)據(jù)庫角色n1通過通過SQL命令創(chuàng)建數(shù)據(jù)庫角色命令創(chuàng)建數(shù)據(jù)庫角色n 1)定義數(shù)據(jù)庫角色)定義數(shù)據(jù)庫角色n 語法格式語法格式:n 其中語法中的參數(shù)介紹如下:nrole_name 將要創(chuàng)建的角色的名稱nowner_name 該角色擁有者的名字

18、,默認為dbo。其中owner_name必須是當前數(shù)據(jù)庫里的用戶或角色1.5.2 用戶自定義數(shù)據(jù)庫角色用戶自定義數(shù)據(jù)庫角色2通過管理器創(chuàng)建數(shù)據(jù)庫角色通過管理器創(chuàng)建數(shù)據(jù)庫角色 第步:第步: 展開指定的數(shù)據(jù)庫節(jié)點。 第第2步步: 選擇【安全性】選項,展開【安全性】節(jié)點,選擇【角色】選項; 第第3步步: 展開【角色】選項下的節(jié)點,選擇【數(shù)據(jù)庫角色】選項,鼠標右鍵單擊,選擇【新建數(shù)據(jù)庫角色】; 第第4步步: 輸入數(shù)據(jù)庫角色的名字,也可以單擊【添加】按鈕添加數(shù)據(jù)庫成員。 第第5步步: 單擊【確定】按鈕1.5.3 應用程序角色 應用程序角色是用戶定義數(shù)據(jù)庫角色的一種形式,與固定數(shù)據(jù)庫角色不同。它規(guī)定了某個

19、應用程序的安全性,用來控制通過某個應用程序對數(shù)據(jù)的間接訪問。例如,管理員允許雇員使用雇員處理程序錄入新員工、離職員工和打印統(tǒng)計報表等。 1.6 數(shù)據(jù)庫權限 權限提供了一種方法來對特權進行分組,并控制實例、數(shù)據(jù)庫和數(shù)據(jù)庫對象的維護和實用程序的操作。用戶可以具有授予一組數(shù)據(jù)庫對象的全部特權的管理權限,也可以具有授予管理系統(tǒng)的全部特權但不允許存取數(shù)據(jù)的系統(tǒng)權限。1.6.1 權限概述權限概述n權限類型:q對象權限q語句權限q隱式權限 對于表和視圖,擁有者可以授予數(shù)據(jù)庫用戶INSERT、UPDATE、DELETE、SELECT和REFERENCES五種權限。1.6.2 管理權限 對于用戶或角色權限的操作

20、有以下3種狀態(tài):授予、廢除和拒絕。用戶和角色的權限以記錄的形式存儲在各個數(shù)據(jù)庫的sysprotects系統(tǒng)表中。1授予權限授予權限 GRANT2撤銷權限撤銷權限 REVOKE3拒絕權限拒絕權限 DENY1.6.2 管理權限管理權限n1 授予權限授予權限n 利用GRANT語句可以給數(shù)據(jù)庫用戶或數(shù)據(jù)庫角色賦予執(zhí)行T-SQL語句的權限及對數(shù)據(jù)庫對象進行操作的權限。n 授予執(zhí)行T-SQL語句的權限。1.6.2 管理權限 語法格式語法格式: GRANT ALL | statement ,.n TO security_account ,.n 授予對數(shù)據(jù)庫對象操作的權限。 語法格式語法格式: GRANT A

21、LL PRIVILEGES | permission ,.n ( column ,.n ) ON table | view | ON table | view ( column ,.n ) | ON stored_procedure | extended_procedure | ON user_defined_function TO security_account ,.n WITH GRANT OPTION AS group | role 1.6.2 管理權限n例如:在下面的例子中使用GRANT語句,授予角色guest對“教務管理系統(tǒng)”數(shù)據(jù)庫中“學生信息”表的INSERT、UPDATE、DE

22、LETE權限n use 教務管理系統(tǒng)n gon grant select,update,deleten on 學生信息n to guestn go1.6.2 管理權限n2. 拒絕權限拒絕權限n 使用DENY命令可以拒絕給當前數(shù)據(jù)庫內的用戶授予的權限,并防止數(shù)據(jù)庫用戶通過其組或角色成員資格繼承權限。n 拒絕語句權限。n 語法格式語法格式:n DENY ALL | statement ,.n TO security_account ,.n n 拒絕對象權限。n 語法格式語法格式:n DENY ALL PRIVILEGES | permission ,.n n n ( column ,.n ) ON

23、 table | view n | ON table | view ( column ,.n ) n | ON stored_procedure | extended_procedure n | ON user_defined_function n TO security_account ,.n n CASCADE 1.6.2 管理權限【例例8.18】 首先給 public 角色授予 對于表XS的SELECT 權限,然后,拒絕用戶 zhang, wang, Nanjingliu 的特定權限,這樣,這些用戶就沒有對XS表的操作權限了。 USE XSCJ GO GRANT SELECT ON XS

24、 TO public GO DENY SELECT, INSERT, UPDATE, DELETE ON XS TO zhang, wang, dreamzhou GO【例8.19】首先將在“教務管理系統(tǒng)”數(shù)據(jù)庫的“學生信息”表中執(zhí)行INSERT操作的權限授予PUBLIC角色,這樣所有的數(shù)據(jù)庫用戶都擁有了該項權限。然后,又拒絕了用戶guest擁有該項權限 use 教務管理系統(tǒng) GO GRANT INSERT ON 學生信息 TO PUBLIC GO DENY INSERT ON 學生信息 TO GUEST1.6.2 管理權限n3. 撤消權限撤消權限n 利用REVOKE命令可取消以前給當前數(shù)據(jù)庫用戶授予或拒絕的權限。n 取消以前授予或拒絕的語句權限。n 語法格式語法格式:n REVOKE ALL | statement ,.n FROM security_account ,.n n 取消以前授予或拒絕的對象權限。n 語法格式語法格式:n REVOKE GRANT OPTION FOR ALL PRIVILEGES | permission ,.n n ( column ,.n ) ON table | view n | ON table | view ( column ,.n ) n | ON stored_procedure

溫馨提示

  • 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

提交評論