第5章 安全與權(quán)限_第1頁(yè)
第5章 安全與權(quán)限_第2頁(yè)
第5章 安全與權(quán)限_第3頁(yè)
第5章 安全與權(quán)限_第4頁(yè)
第5章 安全與權(quán)限_第5頁(yè)
已閱讀5頁(yè),還剩58頁(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、 對(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ī)制上的。重要概念:l主體:它是一個(gè)標(biāo)識(shí),用來(lái)訪問(wèn)SQL 服務(wù)器的對(duì)象,可能是用戶或應(yīng)用程序。l安全對(duì)象:在服務(wù)器和數(shù)據(jù)庫(kù)中,可通過(guò)權(quán)限保護(hù)的對(duì)象。l權(quán)限:用來(lái)規(guī)定特定主體在訪問(wèn)安全對(duì)象時(shí)允許或不允許的行為。l安全級(jí)別:SQL Server 具有多個(gè)安全級(jí)別,各級(jí)別間具有層次關(guān)系

2、。l登錄名:通過(guò)登錄名可以連接到服務(wù)器。l用戶:通過(guò)用戶可以訪問(wèn)數(shù)據(jù)庫(kù)。l角色:通過(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)用程序角色組SQLServer數(shù)據(jù)庫(kù)Windows安全對(duì)象權(quán)限文件密鑰服務(wù)器架構(gòu)數(shù)據(jù)庫(kù)SQL Server 2008 權(quán)限主體Server 角色SQL Server 登錄Windows 組域用戶賬戶本地

3、用戶賬戶用戶數(shù)據(jù)庫(kù)角色應(yīng)用程序角色組SQLServer數(shù)據(jù)庫(kù)Windows安全對(duì)象權(quán)限文件密鑰服務(wù)器架構(gòu)數(shù)據(jù)庫(kù)CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKE OWNERSHIPVIEW DEFINITIONBACKUP授予授予/撤銷撤銷/拒絕拒絕ACL登錄到系統(tǒng)登錄到系統(tǒng) 第一個(gè)安全性問(wèn)題:當(dāng)用戶登錄數(shù)據(jù)庫(kù)系統(tǒng)時(shí),如何確保只有合法的用戶才能登錄到系統(tǒng)中?這是一個(gè)最基本的安全性問(wèn)題,也是數(shù)據(jù)庫(kù)管理系統(tǒng)提供的基本功能。 在 SQL Server 2008中,通過(guò)身份驗(yàn)證模式和主體解決這個(gè)問(wèn)題。安全身份驗(yàn)證 安全身份驗(yàn)

4、證用來(lái)確認(rèn)登錄SQL Server的用戶的登錄帳號(hào)和密碼的正確性,由此來(lái)驗(yàn)證該用戶是否具有連接SQL Server的權(quán)限。任何用戶在使用SQL Server數(shù)據(jù)庫(kù)之前,必須經(jīng)過(guò)系統(tǒng)的安全身份驗(yàn)證。 SQL Server 2008提供了兩種確認(rèn)用戶對(duì)數(shù)據(jù)庫(kù)引擎服務(wù)的驗(yàn)證模式:Windows身份驗(yàn)證與SQL Server身份驗(yàn)證。 SQL Server數(shù)據(jù)庫(kù)系統(tǒng)通常運(yùn)行在Windows服務(wù)器上,而Windows作為網(wǎng)絡(luò)操作系統(tǒng),本身就具備管理登錄、驗(yàn)證用戶合法性的能力,因此Windows 驗(yàn)證模式正是利用了這一用戶安全性和帳號(hào)管理的機(jī)制,允許SQL Server可以使用Windows的用戶名和口令

5、。 Windows 身份驗(yàn)證模式 用戶由 Windows 授權(quán) 通過(guò)登錄而被授予 SQL Server 的訪問(wèn)權(quán) 利用SSMS可以進(jìn)行認(rèn)證模式的設(shè)置,步驟如下:(1)打開SQL 管理平臺(tái),右擊要設(shè)置認(rèn)證模式的【服務(wù)器】,從彈出的快捷菜單中選擇【屬性】選項(xiàng),則出現(xiàn)【SQL Server屬性】對(duì)話框。(2)在SQL Server屬性對(duì)話框中選擇【安全性】選項(xiàng)頁(yè)。操作操作 第二個(gè)安全性問(wèn)題:當(dāng)用戶登錄到系統(tǒng)中,他可以執(zhí)行第二個(gè)安全性問(wèn)題:當(dāng)用戶登錄到系統(tǒng)中,他可以執(zhí)行哪些操作、使用哪些對(duì)象和資源?哪些操作、使用哪些對(duì)象和資源? 這也是一個(gè)基本的安全問(wèn)題,在這也是一個(gè)基本的安全問(wèn)題,在SQL Serv

6、er 2008中,中,通過(guò)安全對(duì)象和權(quán)限設(shè)置來(lái)解決這個(gè)問(wèn)題。通過(guò)安全對(duì)象和權(quán)限設(shè)置來(lái)解決這個(gè)問(wèn)題。 通過(guò)認(rèn)證并不代表用戶就能訪問(wèn)SQL Server中的數(shù)據(jù),還必須通過(guò)許可確認(rèn)。用戶再具有訪問(wèn)數(shù)據(jù)庫(kù)的權(quán)限之后,才能夠?qū)Ψ?wù)器上的DB進(jìn)行權(quán)限許可下的各種操作,這種用戶訪問(wèn)數(shù)據(jù)庫(kù)權(quán)限的設(shè)置是通過(guò)用戶帳號(hào)實(shí)現(xiàn)的 。所有所有 第三個(gè)安全性問(wèn)題:數(shù)據(jù)庫(kù)中的對(duì)象由誰(shuí)所有?如果是第三個(gè)安全性問(wèn)題:數(shù)據(jù)庫(kù)中的對(duì)象由誰(shuí)所有?如果是由用戶所有,那么當(dāng)用戶被刪除時(shí),其所擁有的對(duì)象怎么辦,由用戶所有,那么當(dāng)用戶被刪除時(shí),其所擁有的對(duì)象怎么辦,難道數(shù)據(jù)庫(kù)對(duì)象可以成為沒(méi)有所有者的難道數(shù)據(jù)庫(kù)對(duì)象可以成為沒(méi)有所有者的“孤兒孤

7、兒”嗎?嗎? 在在 SQL Server 2008中,這個(gè)問(wèn)題是通過(guò)用戶和架構(gòu)分中,這個(gè)問(wèn)題是通過(guò)用戶和架構(gòu)分離來(lái)解決的。離來(lái)解決的。2021年11月4日第12頁(yè) 數(shù)據(jù)庫(kù)對(duì)象 架構(gòu) 用戶 包含在 被擁有 表 視圖 存儲(chǔ)過(guò)程 函數(shù) 管理登錄名包括創(chuàng)建登錄名、設(shè)置密碼策略、查看登錄名管理登錄名包括創(chuàng)建登錄名、設(shè)置密碼策略、查看登錄名信息及修改和刪除登錄名等。信息及修改和刪除登錄名等。 注意:注意:sa是一個(gè)是一個(gè) 默認(rèn)的默認(rèn)的SQL Server登錄名,擁有操作登錄名,擁有操作SQL Server系統(tǒng)的所有權(quán)限。該登錄名不能被刪除。當(dāng)采用混合模系統(tǒng)的所有權(quán)限。該登錄名不能被刪除。當(dāng)采用混合模式安裝

8、式安裝SQL Server系統(tǒng)之后,應(yīng)該為系統(tǒng)之后,應(yīng)該為sa指定一個(gè)密碼。指定一個(gè)密碼。CREATE LOGIN login_name WITH SQL_login_options | FROM WINDOWS WITH windows_login_options SQL Server 2008系統(tǒng)的密碼策略問(wèn)題系統(tǒng)的密碼策略問(wèn)題 密碼復(fù)雜性和密碼過(guò)期兩大特征 密碼的復(fù)雜性是指通過(guò)增加更多可能的密碼數(shù)量來(lái)阻止黑客的攻擊。 密碼過(guò)期策略是指如何管理密碼的使用期限。在創(chuàng)建SQL Server登錄名時(shí),如果使用密碼過(guò)期策略,那么系統(tǒng)將提醒用戶及時(shí)更改舊密碼和登錄名,并且禁止使用過(guò)期的密碼。 在使用

9、CREATE LOGIN語(yǔ)句創(chuàng)建SQL Server登錄名時(shí),為了實(shí)施上述的密碼策略,可以指定HASHED、MUST_CHANGE、 CHECK_EXPIRATION、CHECK_PLICY等關(guān)鍵字。 HASHED關(guān)鍵字用于描述如何處理密碼的哈希運(yùn)算。 使用CREATE LOGIN語(yǔ)句創(chuàng)建SQL 登錄名時(shí),如果在PASSWORD后面使用HASHED關(guān)鍵字,表示在作為密碼的字符串存儲(chǔ)到數(shù)據(jù)庫(kù)之前,對(duì)其進(jìn)行哈希運(yùn)算。 如果在PASSWORD關(guān)鍵字后面沒(méi)使用HASHED關(guān)鍵字,表示作為密碼的字符串已經(jīng)是經(jīng)過(guò)哈希運(yùn)算之后的字符串,因此在存儲(chǔ)到數(shù)據(jù)庫(kù)之前不再進(jìn)行哈希運(yùn)算了。 使用密碼策略創(chuàng)建SQL Se

10、rver登錄名維護(hù)登錄名 登錄名創(chuàng)建之后,可以根據(jù)需要修改登錄名的名稱、密碼、密碼策略、默認(rèn)的數(shù)據(jù)庫(kù)等信息,可以禁用或啟用該登錄名,甚至可以刪除不需要的登錄名。使用ALTER LOGIN修改登錄名2021年11月4日第19頁(yè)2021年11月4日第20頁(yè)管理用戶的方法l實(shí)現(xiàn)對(duì)單個(gè)數(shù)據(jù)庫(kù)的訪問(wèn) l可映射到單個(gè)用戶登錄或Windows組用戶登錄l用 SQL Server Management Studio 或 CREATE USER 語(yǔ)句創(chuàng)建用戶創(chuàng)建登錄名的數(shù)據(jù)庫(kù)用戶創(chuàng)建帶有默認(rèn)架構(gòu)的數(shù)據(jù)庫(kù)用戶dbo 用戶:用戶:1、默認(rèn)存在于所有數(shù)據(jù)庫(kù)中2、sysadmin 角色 和 sa 登錄成員 映射到 db

11、o3、任何由系統(tǒng)管理員創(chuàng)建的對(duì)象都自動(dòng)屬于 dbo 4、不能被刪除guest 用戶:1、默認(rèn)存在于所有數(shù)據(jù)庫(kù)中2、允許不使用用戶賬戶的登錄來(lái)訪問(wèn)數(shù)據(jù)庫(kù)查看、dbo和guest 如果希望查看數(shù)據(jù)庫(kù)用戶的信息,可以使用sys.database_principals目錄視圖。該目錄視圖包含了有關(guān)數(shù)據(jù)庫(kù)用戶的名稱、ID、類型、默認(rèn)的架構(gòu)、創(chuàng)建日期和最后修改日期等信息。維護(hù)用戶 使用ALTER USER語(yǔ)句修改用戶。修改用戶包括兩個(gè)方面,第一,可以修改用戶名;第二可以修改用戶的默認(rèn)架構(gòu)。 修改用戶名與刪除、重建用戶是不同的。修改用戶名僅僅是名稱的改變,不是用戶與登錄名對(duì)應(yīng)關(guān)系的改變,也不是用戶與架構(gòu)關(guān)系

12、的變化。修改用戶名:修改和刪除 使用ALTER USER語(yǔ)句修改指定用戶的默認(rèn)架構(gòu),可使用WITH DEFAULT_ SCHEMA子句。 用戶不再需要,可以使用DROP USER語(yǔ)句刪除數(shù)據(jù)庫(kù)中的用戶。服務(wù)器登錄帳號(hào)SQL Server服務(wù)器登錄管理:創(chuàng)建、管理SQL Server登錄帳號(hào),具體執(zhí)行步驟如下:(1)打開SSMS在【對(duì)象資源管理器】中,展開【安全性】文件夾。(2)右擊【登錄名】,從彈出的快捷菜單中選擇【新建登錄名】選項(xiàng),則出現(xiàn)【登錄名新建】對(duì)話框,如下圖。圖10-3 服務(wù)器角色對(duì)話框 (3)選擇【服務(wù)器角色】頁(yè)框,如圖。在框中,列出了系統(tǒng)的固定服務(wù)器角色。在這些固定服務(wù)器角色的左

13、端有相應(yīng)的復(fù)選框,打勾的復(fù)選框表示該登錄帳號(hào)是相應(yīng)的服務(wù)器角色成員。 圖10-4 用戶映射對(duì)話框 (4)選擇【用戶映射】頁(yè)框,如圖。上面的列表框列出了【映射到此登錄名的用戶】,單擊左邊的復(fù)選框設(shè)定該登錄賬號(hào)可以訪問(wèn)的數(shù)據(jù)庫(kù)以及該帳號(hào)在各個(gè)數(shù)據(jù)庫(kù)中對(duì)應(yīng)的用戶名。在【數(shù)據(jù)庫(kù)角色成員身份】中可指定該帳號(hào)所屬的數(shù)據(jù)庫(kù)角色。 5)選擇【安全對(duì)象】頁(yè)框,如圖。安全對(duì)象是 SQL 數(shù)據(jù)庫(kù)引擎授權(quán)系統(tǒng)控制對(duì)其進(jìn)行訪問(wèn)的資源。點(diǎn)擊【添加】按鈕,可對(duì)不同類型的安全對(duì)象進(jìn)行安全授予或拒絕;單擊【確定】即可完成登錄帳號(hào)的創(chuàng)建。用戶帳號(hào)管理 在一個(gè)數(shù)據(jù)庫(kù)中,用戶帳號(hào)惟一標(biāo)識(shí)一個(gè)用戶,用戶對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)權(quán)限以及對(duì)數(shù)據(jù)庫(kù)對(duì)

14、象的所有關(guān)系都是通過(guò)用戶帳號(hào)來(lái)控制的。利用SSMS可授予SQL Server登錄訪問(wèn)數(shù)據(jù)庫(kù)的許可權(quán)限: 打開SSMS,展開要登錄的服務(wù)器和數(shù)據(jù)庫(kù)文件夾,展開要?jiǎng)?chuàng)建用戶的數(shù)據(jù)庫(kù)及安全性文件夾。圖10-6 新建數(shù)據(jù)庫(kù)用戶對(duì)話框 右擊用戶圖標(biāo),從快捷菜單中選擇【新建用戶】選項(xiàng),則出現(xiàn)【數(shù)據(jù)庫(kù)用戶新建】對(duì)話框,如圖。圖10-7 管理數(shù)據(jù)庫(kù)用戶對(duì)話框 在這個(gè)交互式多媒體中,你需要解決不能刪除用戶TOM的問(wèn)題。你可以了解到用戶和架構(gòu)之間的關(guān)系以及處理方法。l 角色是SQL Server引進(jìn)的用來(lái)集中管理數(shù)據(jù)庫(kù)或服務(wù)器權(quán)限的概念。數(shù)據(jù)庫(kù)管理員將操作數(shù)據(jù)庫(kù)的權(quán)限賦予角色,就好像把職權(quán)賦予了一個(gè)官位。然后,數(shù)據(jù)

15、庫(kù)管理員可以將角色再賦給數(shù)據(jù)庫(kù)用戶或登錄賬戶,從而使數(shù)據(jù)庫(kù)用戶或登錄賬戶擁有了相應(yīng)的權(quán)限。l SQL Server提供了用戶通常管理工作的預(yù)定義服務(wù)器角色和數(shù)據(jù)庫(kù)角色;還可創(chuàng)建自己的數(shù)據(jù)庫(kù)角色。l 當(dāng)用戶需要執(zhí)行不同的操作時(shí),只需將該用戶加入不同的角色中即可,而不必對(duì)該用戶反復(fù)授權(quán)許可和收回許可。管理角色:管理角色: 服務(wù)器角色: 固定服務(wù)器角色是SQL Server在安裝時(shí)就創(chuàng)建好的用于分配服務(wù)器級(jí)管理權(quán)限的實(shí)體。 該角色信息存儲(chǔ)在master數(shù)據(jù)庫(kù)的sysxlogins表中,當(dāng)用戶將某個(gè)登錄賬戶增加到服務(wù)器角色中的時(shí)候,sysxlogins表中該登錄賬戶的相應(yīng)行將進(jìn)行更新,以指示該登錄賬戶

16、屬于服務(wù)器角色的成員,同時(shí)具有該角色的許可權(quán)限。 SQL 提供了八種常用的固定服務(wù)器角色如下:系統(tǒng)管理員(sysadmin)服務(wù)器管理員(Serveradmin)磁盤管理員(diskadmin)進(jìn)程管理員(processadmin)安全管理員(securityadmin)安裝管理員(setupadmin)數(shù)據(jù)庫(kù)創(chuàng)建者(dbcreator)批量數(shù)據(jù)輸入管理員(bulkadmin) 數(shù)據(jù)庫(kù)角色分為固定數(shù)據(jù)庫(kù)角色、用戶定義角色和應(yīng)用程序角色。數(shù)據(jù)庫(kù)角色分為固定數(shù)據(jù)庫(kù)角色、用戶定義角色和應(yīng)用程序角色。 固定數(shù)據(jù)庫(kù)角色預(yù)定義了數(shù)據(jù)庫(kù)的安全管理權(quán)限和對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)固定數(shù)據(jù)庫(kù)角色預(yù)定義了數(shù)據(jù)庫(kù)的安全管理權(quán)

17、限和對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限;用戶定義角色由管理員創(chuàng)建并且定義了對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限;應(yīng)用權(quán)限;用戶定義角色由管理員創(chuàng)建并且定義了對(duì)數(shù)據(jù)對(duì)象的訪問(wèn)權(quán)限;應(yīng)用程序角色規(guī)定了某個(gè)應(yīng)用程序的安全性,用來(lái)控制通過(guò)某個(gè)應(yīng)用程序?qū)?shù)據(jù)程序角色規(guī)定了某個(gè)應(yīng)用程序的安全性,用來(lái)控制通過(guò)某個(gè)應(yīng)用程序?qū)?shù)據(jù)的間接訪問(wèn)。的間接訪問(wèn)。 數(shù)據(jù)庫(kù)角色: 當(dāng)在當(dāng)在SQL Server中添加新用戶賬戶或者更改現(xiàn)有用戶的權(quán)限時(shí),可以中添加新用戶賬戶或者更改現(xiàn)有用戶的權(quán)限時(shí),可以向向SQL 數(shù)據(jù)庫(kù)角色添加此用戶,而不要直接將權(quán)限應(yīng)用到賬戶上。用戶賬戶數(shù)據(jù)庫(kù)角色添加此用戶,而不要直接將權(quán)限應(yīng)用到賬戶上。用戶賬戶可以是同一數(shù)據(jù)庫(kù)中任意多

18、個(gè)角色的成員,并且可持有每個(gè)角色的適當(dāng)權(quán)限??梢允峭粩?shù)據(jù)庫(kù)中任意多個(gè)角色的成員,并且可持有每個(gè)角色的適當(dāng)權(quán)限。SQL提供了十種常用的固定數(shù)據(jù)庫(kù)角色來(lái)授予組合數(shù)據(jù)庫(kù)級(jí)管理員權(quán)限: public db_owner db_accessadmin db_ ddladmin db_securityadmin db_backupoperator db_datareader db_datawriter db_denydatareader db_denydatawriter用戶自定義角色: 創(chuàng)建用戶定義的數(shù)據(jù)庫(kù)角色就是創(chuàng)建一組用戶,這些用戶具有相同的一組許可。應(yīng)用程序角色: 它是一種比較特殊的角色。當(dāng)我們打

19、算讓某些用戶只能通過(guò)特定的應(yīng)用程序間接地存取數(shù)據(jù)庫(kù)中的數(shù)據(jù)而不是直接地存取數(shù)據(jù)庫(kù)數(shù)據(jù)時(shí),就應(yīng)該使用應(yīng)用程序角色。 通過(guò)應(yīng)用程序角色,能夠以可控制方式來(lái)限定用戶的語(yǔ)句或者對(duì)象許可。 使用SSMS管理角色:(1)管理服務(wù)器角色。 打開SSMS,展開指定的服務(wù)器,單擊【安全性】文件夾,再單擊【服務(wù)器角色】,在右邊的頁(yè)框中右擊所要的角色,從彈出菜單中選擇【屬性】,則出現(xiàn)【服務(wù)器角色屬性】對(duì)話框,如圖。在該對(duì)話框可看到屬于該角色的成員。單擊【添加】或單擊【刪除】按鈕。圖10-16 “數(shù)據(jù)庫(kù)角色新建”對(duì)話框 (2)管理數(shù)據(jù)庫(kù)角色。 在SSMS中,展開【服務(wù)器】、【數(shù)據(jù)庫(kù)】和【安全性】文件夾,右擊【數(shù)據(jù)庫(kù)角

20、色】,從彈出菜單中選擇【新建數(shù)據(jù)庫(kù)角色】,則出現(xiàn)【新建數(shù)據(jù)庫(kù)角色】對(duì)話框,如圖。 使用存儲(chǔ)過(guò)程管理角色:(1)管理服務(wù)器角色 在SQL Server中,管理服務(wù)器角色的存儲(chǔ)過(guò)程主要有兩個(gè):1、sp_addsrvrolemember :添加服務(wù)器角色的成員。其語(yǔ)法為: sp_addsrvrolemember loginame=login,rolename=role2、sp_dropsrvrolemember:從服務(wù)器角色中刪除成員。其語(yǔ)法為: sp_dropsrvrolemember loginame=login,rolename=role(2)管理數(shù)據(jù)庫(kù)角色(六種): create role:

21、 create role role_name AUTHORIZATION owner_name droprole:Drop role role_name sp_helprole:sp_helprole role sp_addrolemember:sp_addrolemember role,security_account sp_droprolemember:sp_droprolemember role,security_account sp_helprolemember:sp_helprolemember role 使用架構(gòu)使用架構(gòu) 命名空間將相關(guān)對(duì)象組織在一起,從而使復(fù)雜的對(duì)象列表更加方便管

22、理。SQL Server 2008使用架構(gòu)對(duì)數(shù)據(jù)庫(kù)對(duì)象實(shí)現(xià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。提問(wèn): 在數(shù)據(jù)庫(kù)中專門有名為 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ù)將不知道如

23、何區(qū)分 2006 級(jí)的學(xué)生和 2007 級(jí)的學(xué)生。如何解決這一問(wèn)題呢?PersonContact(Server1.AdventureWorks.Person.Contact)SalesCustomer(Server1.AdventureWorks.Sales.Customer)AdventureWorksdboErrorLog(Server1.AdventureWorks.dbo.ErrorLog)l 數(shù)據(jù)庫(kù)對(duì)象的命名空間:數(shù)據(jù)庫(kù)對(duì)象的命名空間: 創(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):

24、CREATE 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

25、 ;都為整型)CREATE TABLE promotions( source int , cost int , promonumber int )- 授予給Don的用戶的SELECT權(quán)限GRANT SELECT TO Don - 拒絕將SELECT權(quán)限授予給Erik的用戶的 DENY SELECT TO Erik Go 對(duì)象許可表示對(duì)特定的數(shù)據(jù)庫(kù)對(duì)象的操作許可,它決定了能對(duì)表、視圖等數(shù)據(jù)庫(kù)對(duì)象執(zhí)行哪些操作。 語(yǔ)句許可表示對(duì)數(shù)據(jù)庫(kù)的操作許可。 語(yǔ)句許可針對(duì)的是某個(gè)SQL語(yǔ)句,而不是數(shù)據(jù)庫(kù)中已經(jīng)創(chuàng)建的特定的數(shù)據(jù)庫(kù)對(duì)象。 預(yù)定義許可是指系統(tǒng)安裝以后有些用戶和角色不必授權(quán)就有的許可。其中的角色包括固定

26、服務(wù)器角色和固定數(shù)據(jù)庫(kù)角色,用戶包括數(shù)據(jù)庫(kù)對(duì)象所有者。 只有固定角色或者數(shù)據(jù)庫(kù)對(duì)象所有者的成員才可以執(zhí)行某些操作。 用戶在登錄到SQL后,其用戶帳號(hào)所歸屬的Windwos 組或角色所被賦予的許可(權(quán)限)決定了該用戶能夠?qū)δ男?shù)據(jù)庫(kù)對(duì)象執(zhí)行哪種操作以及能夠訪問(wèn)、修改哪些數(shù)據(jù)。 在SQL中包括三種類型的許可:即對(duì)象許可、語(yǔ)句許可和預(yù)定義許可。 T-SQL 語(yǔ)句使用 GRANT、REVOKR 和 DENY 三種命令來(lái)管理權(quán)限: GRANT:1、語(yǔ)句權(quán)限與角色的授予、語(yǔ)句權(quán)限與角色的授予 :使用該語(yǔ)句為用戶授予語(yǔ)句權(quán)限的語(yǔ)法為:使用該語(yǔ)句為用戶授予語(yǔ)句權(quán)限的語(yǔ)法為: GRANT | ,| TO |PU

27、BLIC,| WITH ADMIN OPTION舉例:舉例:為用戶為用戶ZhangYiLin授予授予CREATE TABLE的語(yǔ)句權(quán)限。的語(yǔ)句權(quán)限。程序清單如下:程序清單如下: GRANT CREATE TABLE TO ZhangYiLin2、對(duì)象權(quán)限與角色的授予:使用該語(yǔ)句為用戶授予對(duì)象權(quán)限,其語(yǔ)法為:、對(duì)象權(quán)限與角色的授予:使用該語(yǔ)句為用戶授予對(duì)象權(quán)限,其語(yǔ)法為: GRANT ALL|(列名列名,列名列名),ON TO |PUBLIC,| WITH ADMIN OPTION 舉例:舉例:在在S表中給所有用戶授予表中給所有用戶授予 SELECT 權(quán)限,再將權(quán)限,再將INSERT, UPDA

28、TE, DELETE權(quán)限授予用戶權(quán)限授予用戶 Mary,John 和和 Tom。程序清單如下:GRANT SELECT ON s TO public GO GRANT INSERT, UPDATE, DELETE ON s TO Mary, John, TomGOREVOKE:能夠?qū)⒁郧霸诋?dāng)前數(shù)據(jù)庫(kù)內(nèi)的用戶或者角色上授予或拒絕的權(quán)限刪除,但是該語(yǔ)句并不影響用戶或者角色從其他角色中作為成員繼承過(guò)來(lái)的權(quán)限 語(yǔ)句權(quán)限或?qū)ο髾?quán)限與角色的收回:DBA使用該語(yǔ)句收回其相應(yīng)權(quán)限,語(yǔ)法為: 1、 REVOKE | ,| FROM |PUBLIC,| 2、REVOKE | ,| ON FROM |PUBLIC,|舉例:收回用戶ZHANGYILIN所擁有的CREATE TABLE的語(yǔ)句權(quán)限。 REVOKE CREATE TABLE FROM ZHANGYILIN舉例:收回用戶USER1對(duì)C表的查詢權(quán)限。 REVOKE SELECT ON C FROM USER1 DENY:用于拒絕給當(dāng)前數(shù)據(jù)庫(kù)內(nèi)的用戶或者角色授予權(quán)限,并防止用戶或角色通過(guò)其組或角色成員繼承權(quán)限。 否定語(yǔ)句權(quán)限的語(yǔ)法形式為: DENY ALL| ,| TO |PUBLIC,| 否定對(duì)象權(quán)限的語(yǔ)法形式為:

溫馨提示

  • 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)論