第4章 賬戶和存取權(quán)限_第1頁(yè)
第4章 賬戶和存取權(quán)限_第2頁(yè)
第4章 賬戶和存取權(quán)限_第3頁(yè)
第4章 賬戶和存取權(quán)限_第4頁(yè)
第4章 賬戶和存取權(quán)限_第5頁(yè)
已閱讀5頁(yè),還剩29頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)應(yīng)用軟件應(yīng)用軟件信息科學(xué)與工程學(xué)院信息科學(xué)與工程學(xué)院 計(jì)算機(jī)系計(jì)算機(jī)系魏永山魏永山第第4章章 賬戶和存取權(quán)限賬戶和存取權(quán)限對(duì)于一個(gè)數(shù)據(jù)庫(kù)管理員來(lái)說(shuō),安全性就意味著必須保證那些具有特殊數(shù)據(jù)訪問(wèn)權(quán)限的用戶能夠登錄到SQL Server,并且能夠訪問(wèn)數(shù)據(jù)以及對(duì)數(shù)據(jù)庫(kù)對(duì)象實(shí)施各種權(quán)限范圍內(nèi)的操作;同時(shí),他還要防止所有的非授權(quán)用戶的非法操作。 SQL Server提供了既有效又容易的安全管理模式,這種安全管理模式是建立在安全身份驗(yàn)證和訪問(wèn)許可兩者機(jī)制上的。基本原理基本原理主體主體:它是一個(gè)標(biāo)識(shí),用來(lái)訪問(wèn)SQL 服務(wù)器的對(duì)象,可能是用戶或應(yīng)用程序。安全對(duì)象安全對(duì)象:在服務(wù)器和數(shù)據(jù)庫(kù)中,可通過(guò)權(quán)

2、限保護(hù)的對(duì)象。權(quán)限權(quán)限:用來(lái)規(guī)定特定主體在訪問(wèn)安全對(duì)象時(shí)允許或不允許的行為。安全級(jí)別安全級(jí)別:SQL Server 具有多個(gè)安全級(jí)別,各級(jí)別間具有層次關(guān)系。登錄名登錄名:通過(guò)登錄名可以連接到服務(wù)器。用戶用戶:通過(guò)用戶可以訪問(wèn)數(shù)據(jù)庫(kù)。角色角色:通過(guò)角色可以賦予訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限。重要概念重要概念主 體主體Server 角色SQL Server 登錄Windows 組域用戶賬戶本地用戶賬戶用戶數(shù)據(jù)庫(kù)角色應(yīng)用程序角色組SQLServer數(shù)據(jù)庫(kù)Windows安全對(duì)象權(quán)限安全對(duì)象主體Server 角色SQL Server 登錄Windows 組域用戶賬戶本地用戶賬戶用戶數(shù)據(jù)庫(kù)角色應(yīng)用程序角色組SQLSer

3、ver數(shù)據(jù)庫(kù)Windows安全對(duì)象權(quán)限文件密鑰服務(wù)器架構(gòu)數(shù)據(jù)庫(kù)SQL Server 2005 權(quán)限主體Server 角色SQL Server 登錄Windows 組域用戶賬戶本地用戶賬戶用戶數(shù)據(jù)庫(kù)角色應(yīng)用程序角色組SQLServer數(shù)據(jù)庫(kù)Windows安全對(duì)象權(quán)限文件密鑰服務(wù)器架構(gòu)數(shù)據(jù)庫(kù)CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKE OWNERSHIPVIEW DEFINITIONBACKUP授予授予/撤銷撤銷/拒絕拒絕ACL4.1 4.1 SQL Server的驗(yàn)證模式SQL Server對(duì)用戶的訪問(wèn)進(jìn)行兩個(gè)階

4、段的檢驗(yàn):驗(yàn)證階段 登錄SQL Server時(shí)進(jìn)行的檢查。如果驗(yàn)證通過(guò),用戶就可以連接到SQL Server上;否則,服務(wù)器將拒絕用戶的登錄。從而保證了系統(tǒng)安全性。許可確認(rèn)階段 登錄到SQL Server上以后,系統(tǒng)檢查用戶是否有訪問(wèn)服務(wù)器上數(shù)據(jù)的權(quán)限。4.1.1 Windows模式驗(yàn)證模式驗(yàn)證在windows驗(yàn)證模式下,SQL Server檢測(cè)當(dāng)前使用的Windows用戶帳戶,確定該賬戶是否有權(quán)限登錄。該模式不必提交登錄名和密碼。4.1 SQL Server的驗(yàn)證模式Windows驗(yàn)證模式有以下主要優(yōu)點(diǎn):數(shù)據(jù)庫(kù)管理員的工作可以集中在管理數(shù)據(jù)庫(kù)上面,而不是管理用戶賬戶。對(duì)用戶賬戶的管理可以交給

5、Windows去完成。 Windows有著更強(qiáng)的用戶賬戶管理工具。可以設(shè)置賬戶鎖定、密碼期限等。Windows的組策略支持多個(gè)用戶同時(shí)被授權(quán)訪問(wèn)SQL Server。4.1 SQL Server的驗(yàn)證模式4.1.2 混合驗(yàn)證模式混合驗(yàn)證模式混合驗(yàn)證模式允許以SQL Server驗(yàn)證模式或Windows驗(yàn)證模式來(lái)進(jìn)行驗(yàn)證。使用哪種模式取決于在最初的通信時(shí)使用的網(wǎng)絡(luò)庫(kù)。如果一個(gè)用戶使用的是TCP/IP Sockets進(jìn)行登錄驗(yàn)證,則將使用SQL Server驗(yàn)證模式;如果用戶使用Named Pipes,則登錄時(shí)將使用Windows驗(yàn)證模式。SQL Server驗(yàn)證模式處理登錄的過(guò)程: 用戶輸入登錄

6、名和密碼后, SQL Server在系統(tǒng)注冊(cè)表中檢測(cè)輸入的登錄名和密碼。如果輸入的登錄名存在,而且密碼也正確,就可以登錄到SQL Server上。4.1 SQL Server的驗(yàn)證模式混合驗(yàn)證模式具有如下優(yōu)點(diǎn):創(chuàng)建了Windows之上的另外一個(gè)安全層次。支持更大范圍的用戶,例如非Windows客戶、Novell網(wǎng)絡(luò)等。一個(gè)應(yīng)用程序可以使用單個(gè)的SQL Server登錄和口令。4.1 SQL Server的驗(yàn)證模式4.1.3 設(shè)置驗(yàn)證模式設(shè)置驗(yàn)證模式第1步:在“對(duì)象資源管理器”窗口中,選擇服務(wù)器,右擊,在彈出的快捷菜單上選擇“屬性”命令,然后在打開的“服務(wù)器屬性”對(duì)話框中,選擇“安全性”選項(xiàng),打

7、開“安全性”選項(xiàng)卡 .第2步:在“服務(wù)器身份驗(yàn)證”欄中設(shè)置驗(yàn)證模式后,單擊“確定”按鈕.第3步:重新啟動(dòng)SQL Server,以新的驗(yàn)證模式登錄服務(wù)器。 4.1 SQL Server的驗(yàn)證模式4.2 賬戶和角色SQL Server的兩種賬戶:的兩種賬戶:登錄服務(wù)器的登錄帳戶(login name)登錄帳戶只是讓用戶登錄到SQL Server中,但登錄名本身并不能讓用戶訪問(wèn)服務(wù)器中的數(shù)據(jù)。要訪問(wèn)特定的數(shù)據(jù)庫(kù),還必須具有用戶名。使用數(shù)據(jù)庫(kù)的用戶帳戶(user name )用戶名在特定的數(shù)據(jù)庫(kù)內(nèi)創(chuàng)建。用戶定義的信息放在服務(wù)器上的每個(gè)數(shù)據(jù)庫(kù)的sysusers表中。通過(guò)授權(quán)給用戶來(lái)指定銀行可以訪問(wèn)的數(shù)據(jù)

8、庫(kù)對(duì)象的權(quán)限。角色角色角色是一組用戶所構(gòu)成的組,可分為服務(wù)器角色和數(shù)據(jù)庫(kù)角色。當(dāng)幾個(gè)用戶需要在某個(gè)特定的數(shù)據(jù)庫(kù)中執(zhí)行類似的動(dòng)作時(shí),就可以向該數(shù)據(jù)庫(kù)中添加一個(gè)角色(role)。數(shù)據(jù)庫(kù)角色指定了可以訪問(wèn)相同數(shù)據(jù)庫(kù)對(duì)象的一組數(shù)據(jù)庫(kù)用戶。4.2 賬戶和角色服務(wù)器角色服務(wù)器角色Sysadmin 可執(zhí)行SQL Server中的任何動(dòng)作Serveradmin 可設(shè)置服務(wù)器范圍的配置選項(xiàng)Setupadmin 可管理鏈接服務(wù)器和啟動(dòng)過(guò)程Securityadmin 可管理登錄和創(chuàng)建數(shù)據(jù)庫(kù)、讀取錯(cuò)誤日志和更改密碼。Processadmin 管理SQL Server進(jìn)程Dbcreator 創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)Dis

9、kadmin 管理磁盤文件Public 具有查看任何數(shù)據(jù)庫(kù)的權(quán)限4.2 賬戶和角色4.2.1 登錄帳戶登錄帳戶登錄帳戶的添加登錄帳戶的設(shè)置登錄帳戶的刪除4.2 賬戶和角色4.2.2 數(shù)據(jù)庫(kù)用戶數(shù)據(jù)庫(kù)用戶每個(gè)登錄帳戶在一個(gè)數(shù)據(jù)庫(kù)中中你能有一個(gè)用戶帳戶,但是每個(gè)登錄帳戶可以在不同的數(shù)據(jù)庫(kù)中各有一個(gè)用戶帳戶。如果在創(chuàng)建登錄帳戶時(shí)沒(méi)有指定對(duì)某個(gè)數(shù)據(jù)庫(kù)的存取權(quán)限,則在數(shù)據(jù)庫(kù)中,可創(chuàng)建一個(gè)新的用戶帳戶,并關(guān)聯(lián)到該登錄帳戶,則該登錄帳戶會(huì)自動(dòng)具有對(duì)該數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限。例:在AdventureWorks庫(kù)中創(chuàng)建一個(gè)用戶帳戶bookA,并將其關(guān)聯(lián)到bookadm登錄帳戶中。4.2 賬戶和角色4.2.3 角色角色

10、 擁有相同權(quán)限的用戶集合稱為角色服務(wù)器角色:由服務(wù)器賬戶組成的組,負(fù)責(zé)管理和維護(hù)SQL Server組。數(shù)據(jù)庫(kù)角色:由數(shù)據(jù)庫(kù)成員所組成的組,此成員可以是用戶或者其他的數(shù)據(jù)庫(kù)角色。4.2 賬戶和角色1.固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色db_owner 在數(shù)據(jù)庫(kù)中有全部權(quán)限db_accessadmin 可以添加、刪除用戶db_datareader 可以查看所有數(shù)據(jù)庫(kù)中用戶表內(nèi)數(shù)據(jù)db_datawriter 可以添加、修改或刪除所有數(shù)據(jù)庫(kù)中用戶表內(nèi)數(shù)據(jù)的用戶db_ddladmin 可以在數(shù)據(jù)庫(kù)中執(zhí)行所有定義操作db_securityadmin可以管理數(shù)據(jù)庫(kù)中與安全權(quán)限有關(guān)所有動(dòng)作db_backopera

11、tor 可以備份數(shù)據(jù)庫(kù)db_denydatareader 不能選擇數(shù)據(jù)庫(kù)中任何數(shù)據(jù)db_denydatawriter 不能改變數(shù)據(jù)庫(kù)中任何數(shù)據(jù)Public 4.2 賬戶和角色例:查看db_owner數(shù)據(jù)庫(kù)角色的屬性,并將用戶bookadm加入到該角色中。 4.2 賬戶和角色2.應(yīng)用程序角色應(yīng)用程序角色 應(yīng)用程序角色只使用應(yīng)用程序,因而不需要把權(quán)限直接賦予用戶,所以應(yīng)用程序角色沒(méi)有任何成員。此外需要為應(yīng)用程序設(shè)置一個(gè)口令來(lái)激活它。 應(yīng)用程序角色可以加強(qiáng)對(duì)某個(gè)特定的應(yīng)用程序的安全。這些角色允許應(yīng)用程序自己代替SQL Server接管用戶身份驗(yàn)證的職責(zé)。比如,如果公司中的員工只是使用某個(gè)特定的應(yīng)用程

12、序(而不是使用Transact-SQL語(yǔ)句或其他任何工具)來(lái)修改員工的數(shù)據(jù)信息,那么就可以為它創(chuàng)建一個(gè)應(yīng)用程序角色。 當(dāng)應(yīng)用程序角色被應(yīng)用程序的會(huì)話激活以用于連接時(shí),在連接期間,會(huì)話就失去了登錄、用戶賬戶或所有數(shù)據(jù)庫(kù)中的角色的權(quán)限。4.2 賬戶和角色3.public數(shù)據(jù)庫(kù)角色的權(quán)限數(shù)據(jù)庫(kù)角色的權(quán)限public角色是一種特殊的固定數(shù)據(jù)庫(kù)角色,當(dāng)在數(shù)據(jù)庫(kù)添加新用戶帳戶時(shí),SQL Server會(huì)自動(dòng)將新用戶帳戶加入public數(shù)據(jù)庫(kù)角色中,即數(shù)據(jù)庫(kù)的每個(gè)合法用戶都屬于該角色。 public角色為數(shù)據(jù)庫(kù)中的用戶提供了所有默認(rèn)權(quán)限。對(duì)于用戶建立的數(shù)據(jù)庫(kù)對(duì)象, public角色默認(rèn)是不設(shè)置權(quán)限。publi

13、c角色為數(shù)據(jù)庫(kù)中的所有用戶都保留了默認(rèn)的權(quán)限,因此是不能被刪除的。4.2 賬戶和角色4.2.4 用戶和角色的權(quán)限問(wèn)題用戶和角色的權(quán)限問(wèn)題 用戶是否具有對(duì)數(shù)據(jù)庫(kù)存取的權(quán)利,要看其權(quán)限設(shè)置而定,但是,它還要受其所屬角色的權(quán)限的限制。4.2 賬戶和角色1. 用戶權(quán)限繼承角色的權(quán)限用戶權(quán)限繼承角色的權(quán)限用戶對(duì)數(shù)據(jù)庫(kù)對(duì)象的存取權(quán)限繼承于所屬角色。假如用戶User1屬于角色Role1,角色Role1已經(jīng)取得對(duì)表Table1的SELECT權(quán)限,則用戶User1也自動(dòng)取得對(duì)表Table1的SELECT權(quán)限,如果角色Role1對(duì)表Table1沒(méi)有INSERT權(quán)限,而用戶User1取得了對(duì)表Table1的INSE

14、RT權(quán)限,則角色Role1最終也取得對(duì)表Table1的INSERT權(quán)限。拒絕權(quán)限優(yōu)先,只要角色Role1和用戶User1中的之一拒絕,則該權(quán)限就是拒絕。4.2 賬戶和角色2. 用戶分屬不同角色用戶分屬不同角色如果一個(gè)用戶分屬于不同的數(shù)據(jù)庫(kù)角色,例如,用戶User1即屬于角色Role1,又屬于角色Role2,則用戶User1的權(quán)限是以Role1和Role2的并集為準(zhǔn)。但是只要有一個(gè)拒絕,則用戶User1的權(quán)限就是拒絕。4.2 賬戶和角色 命名空間將相關(guān)對(duì)象組織在一起,從而使復(fù)雜的對(duì)象列表更加方便管理。 SQL Server 2005 使用架構(gòu)架構(gòu)對(duì)數(shù)據(jù)庫(kù)對(duì)象實(shí)現(xiàn)了類似的概念。提問(wèn): 在數(shù)據(jù)庫(kù)中專

15、門有名為 student_id 的表用來(lái)統(tǒng)計(jì)學(xué)生的學(xué)號(hào)和姓名,現(xiàn)在的問(wèn)題就是每一屆的學(xué)生數(shù)據(jù)都會(huì)存在這樣一張同名的表,這可能會(huì)給查詢帶來(lái)困難。 舉例:針對(duì)上面的情況,數(shù)據(jù)庫(kù)將不知道如何區(qū)分 2006 級(jí)的學(xué)生和 2007 級(jí)的學(xué)生。如何解決這一問(wèn)題呢?舉例:我們以每一屆的學(xué)生建立架構(gòu),要查找 2007 級(jí)的學(xué)生學(xué)號(hào)時(shí),在這個(gè)數(shù)據(jù)庫(kù)中就可以通過(guò) 2007.student.id 來(lái)找到合適的表了。架構(gòu):是數(shù)據(jù)庫(kù)對(duì)象的命名空間。換言之,架構(gòu)定義了一個(gè)邊界,邊界內(nèi)的所有名稱都是唯一的。數(shù)據(jù)庫(kù)中每一個(gè)對(duì)象的唯一完全限定名稱為server.database.schema.object。PersonCont

16、act(Server1.AdventureWorks.Person.Contact)SalesCustomer(Server1.AdventureWorks.Sales.Customer)AdventureWorksdboErrorLog(Server1.AdventureWorks.dbo.ErrorLog) 數(shù)據(jù)庫(kù)對(duì)象的命名空間數(shù)據(jù)庫(kù)對(duì)象的命名空間下圖有名為 Server的 SQL Server 實(shí)例中 AdventureWorks 數(shù)據(jù)庫(kù)內(nèi)的三個(gè)架構(gòu)。架構(gòu)分別名為Person、Sales和dbo,每一個(gè)架構(gòu)都包含一個(gè)表。表的完全限定名稱:包括服務(wù)器名、數(shù)據(jù)庫(kù)名和架構(gòu)名。例如:dbo 架構(gòu)

17、中的 ErrorLog 表的完全限定名稱為server1. AdventureWorks.dbo.ErrorLog在在SQL早期版本中,對(duì)象的命名空間有其所有者的用早期版本中,對(duì)象的命名空間有其所有者的用戶名決定。戶名決定。在在SQL Server 2005中,架構(gòu)與對(duì)象的所有權(quán)分離,這中,架構(gòu)與對(duì)象的所有權(quán)分離,這樣做的優(yōu)勢(shì)在于:樣做的優(yōu)勢(shì)在于: 在將數(shù)據(jù)庫(kù)對(duì)象組織到命名空間中時(shí)靈活性更強(qiáng) 權(quán)限管理更加簡(jiǎn)單; 可管理性也得到了提高。 創(chuàng)建架構(gòu),在SSMS 中通過(guò)【對(duì)象資源管理器】,展開數(shù)據(jù)庫(kù)下的【安全性】,就可創(chuàng)建架構(gòu)。使用使用CREATE SCHEMA語(yǔ)句創(chuàng)建架構(gòu):語(yǔ)句創(chuàng)建架構(gòu):CREAT

18、E SCHEMA schema_name | AUTHORIZATION owner_name 舉例:創(chuàng)建名為 marketing 的架構(gòu),該架構(gòu)由名為 Lance 的用戶擁有;在新建的架構(gòu)中創(chuàng)建名為 promotions 的表。 該語(yǔ)句將架構(gòu)中的SELECT權(quán)限授予給Don的用戶,并拒絕將SELECT 權(quán)限授予給名為 Erik 的用戶。-創(chuàng)建名為marketing的架構(gòu),該架構(gòu)由名為L(zhǎng)ance的用戶擁有CREATE SCHEMA Marketing AUTHORIZATION Lance -在架構(gòu)中創(chuàng)建promotions的表( 三列:source cost promonumber ;都為整型)CREATE TABLE Mmotions( source int , cost int , promonumber int )- 授予給Don的用戶的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論