第16章SQLServer的安全管理(新)_第1頁(yè)
第16章SQLServer的安全管理(新)_第2頁(yè)
第16章SQLServer的安全管理(新)_第3頁(yè)
第16章SQLServer的安全管理(新)_第4頁(yè)
第16章SQLServer的安全管理(新)_第5頁(yè)
已閱讀5頁(yè),還剩43頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第16章SQLServer的安全管理16.1概述——三個(gè)安全性問(wèn)題16.2管理登錄名16.3角色16.4權(quán)限16.5架構(gòu)16.1

概述——三個(gè)安全性問(wèn)題

安全性是所有數(shù)據(jù)庫(kù)管理系統(tǒng)的一個(gè)重要特征。理解安全性問(wèn)題是理解數(shù)據(jù)庫(kù)管理系統(tǒng)安全性機(jī)制的前提。SQLServer的數(shù)據(jù)安全機(jī)制中主要手段:角色架構(gòu)用戶(hù)權(quán)限三個(gè)安全性問(wèn)題第一個(gè)安全性問(wèn)題:當(dāng)用戶(hù)登錄數(shù)據(jù)庫(kù)系統(tǒng)時(shí),如何確保只有合法的用戶(hù)才能登錄到系統(tǒng)中?第二個(gè)安全性問(wèn)題:當(dāng)用戶(hù)登錄到系統(tǒng)中,他可以執(zhí)行哪些操作、使用哪些對(duì)象和資源?第三個(gè)安全性問(wèn)題:數(shù)據(jù)庫(kù)中的對(duì)象由誰(shuí)所有?如果是由用戶(hù)所有,那么當(dāng)用戶(hù)被刪除時(shí),其所擁有的對(duì)象怎么辦,難道數(shù)據(jù)庫(kù)對(duì)象可以成為沒(méi)有所有者的“孤兒”嗎?第一個(gè)安全性問(wèn)題:當(dāng)用戶(hù)登錄數(shù)據(jù)庫(kù)系統(tǒng)時(shí),如何確保只有合法的用戶(hù)才能登錄到系統(tǒng)中?這是一個(gè)最基本的安全性問(wèn)題,也是數(shù)據(jù)庫(kù)管理系統(tǒng)提供的基本功能。在MicrosoftSQLServer2008系統(tǒng)中,通過(guò)身份驗(yàn)證模式和主體解決這個(gè)問(wèn)題。身份驗(yàn)證模式身份驗(yàn)證模式是DBMS驗(yàn)證客戶(hù)端和服務(wù)器之間連接的方式。服務(wù)器級(jí)別的驗(yàn)證模式有:Windows身份驗(yàn)證模式和混合模式兩種。主體主體是可以請(qǐng)求系統(tǒng)資源的個(gè)體、組合過(guò)程,用來(lái)訪問(wèn)SQL服務(wù)器的對(duì)象,可能是用戶(hù)或應(yīng)用程序。例如,數(shù)據(jù)庫(kù)用戶(hù)是一種主體,可以按照自己的權(quán)限在數(shù)據(jù)庫(kù)中執(zhí)行操作和使用相應(yīng)的數(shù)據(jù)。主體的三個(gè)級(jí)別Windows級(jí)別的主體的作用范圍是整個(gè)Windows操作系統(tǒng)。SQLServer級(jí)別的作用范圍是整個(gè)SQL系統(tǒng),所有數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)級(jí)別的作用范圍是數(shù)據(jù)庫(kù)內(nèi)的各種資源。不同主體之間的關(guān)系是典型的層次結(jié)構(gòu)關(guān)系??梢岳斫鉃椤耙患?jí)壓一級(jí)”。第二個(gè)安全性問(wèn)題:當(dāng)用戶(hù)登錄到系統(tǒng)中,他可以執(zhí)行哪些操作、使用哪些對(duì)象和資源?通過(guò)安全對(duì)象和權(quán)限設(shè)置來(lái)解決這個(gè)問(wèn)題。安全對(duì)象:在服務(wù)器和數(shù)據(jù)庫(kù)中,可通過(guò)權(quán)限保護(hù)的對(duì)象。主體發(fā)出請(qǐng)求訪問(wèn)安全對(duì)象。能不能訪問(wèn)呢?系統(tǒng)需要判斷主體是否擁有訪問(wèn)安全對(duì)象的權(quán)限。服務(wù)器安全對(duì)象范圍:SQLServer登錄名、數(shù)據(jù)庫(kù)等數(shù)據(jù)庫(kù)安全對(duì)象范圍:用戶(hù)、應(yīng)用程序角色、程序集等架構(gòu)安全對(duì)象范圍:類(lèi)型、聚合、約束、過(guò)程、函數(shù)等主體和安全對(duì)象的關(guān)系Server角色SQLServer登錄Windows組域用戶(hù)賬戶(hù)本地用戶(hù)賬戶(hù)用戶(hù)數(shù)據(jù)庫(kù)角色應(yīng)用程序角色組SQLServer數(shù)據(jù)庫(kù)Windows文件密鑰服務(wù)器架構(gòu)數(shù)據(jù)庫(kù)安全對(duì)象權(quán)限主體SQLServer2008權(quán)限Server角色SQLServer登錄Windows組域用戶(hù)賬戶(hù)本地用戶(hù)賬戶(hù)用戶(hù)數(shù)據(jù)庫(kù)角色應(yīng)用程序角色組SQLServer數(shù)據(jù)庫(kù)Windows文件密鑰CREATEALTERDROPCONTROLCONNECTSELECTEXECUTEUPDATEDELETEINSERTTAKEOWNERSHIPVIEWDEFINITIONBACKUP授予/撤銷(xiāo)/拒絕ACL服務(wù)器架構(gòu)數(shù)據(jù)庫(kù)安全對(duì)象權(quán)限主體第三個(gè)安全性問(wèn)題:數(shù)據(jù)庫(kù)中的對(duì)象由誰(shuí)所有?如果是由用戶(hù)所有,那么當(dāng)用戶(hù)被刪除時(shí),其所擁有的對(duì)象怎么辦,難道數(shù)據(jù)庫(kù)對(duì)象可以成為沒(méi)有所有者的“孤兒”嗎?這個(gè)問(wèn)題是通過(guò)用戶(hù)和架構(gòu)分離來(lái)解決的。用戶(hù)不擁有數(shù)據(jù)庫(kù)對(duì)象,架構(gòu)可以擁有數(shù)據(jù)庫(kù)對(duì)象。用戶(hù)通過(guò)架構(gòu)來(lái)使用數(shù)據(jù)庫(kù)對(duì)象。那么,刪除用戶(hù)時(shí)就不必修改數(shù)據(jù)庫(kù)對(duì)象的所有者。數(shù)據(jù)庫(kù)對(duì)象、架構(gòu)和用戶(hù)之間的關(guān)系示意圖2023年2月1日第10頁(yè)總結(jié)SQLServer2008的安全機(jī)制SQLServer2008的安全機(jī)制可以分為四個(gè)級(jí)別:操作系統(tǒng)的安全性SQLServer2008的登錄安全性數(shù)據(jù)庫(kù)的使用安全性數(shù)據(jù)庫(kù)對(duì)象的使用安全性操作系統(tǒng)安全在使用客戶(hù)計(jì)算機(jī)通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)對(duì)SQLServer服務(wù)器的訪問(wèn)時(shí),用戶(hù)首先要獲得客戶(hù)計(jì)算機(jī)操作系統(tǒng)的使用權(quán)。操作系統(tǒng)安全性是操作系統(tǒng)管理員或者網(wǎng)絡(luò)管理員的任務(wù)。SQLServer的安全性SQLServer的服務(wù)器級(jí)安全性建立在控制服務(wù)器登錄賬號(hào)和密碼的基礎(chǔ)上。SQLServer采用了標(biāo)準(zhǔn)SQLServer登錄和集成Windows登錄兩種方式。用戶(hù)在登錄時(shí)提供的登錄賬號(hào)和密碼,決定了用戶(hù)能否獲得SQLServer的訪問(wèn)權(quán)。管理和設(shè)計(jì)合理的登錄方式是數(shù)據(jù)庫(kù)管理員(DBA)的重要任務(wù),是SQLServer安全體系中DBA可以發(fā)揮主動(dòng)性的第一道防線。數(shù)據(jù)庫(kù)的安全性在用戶(hù)通過(guò)SQLServer服務(wù)器的安全性檢驗(yàn)以后,將直接面對(duì)不同的數(shù)據(jù)庫(kù)入口。在建立用戶(hù)的登錄賬號(hào)信息時(shí),SQLServer會(huì)提示用戶(hù)選擇默認(rèn)的數(shù)據(jù)庫(kù)。以后用戶(hù)每次連接上服務(wù)器后,都會(huì)自動(dòng)轉(zhuǎn)到默認(rèn)的數(shù)據(jù)庫(kù)上。對(duì)任何用戶(hù)來(lái)說(shuō),master數(shù)據(jù)庫(kù)的門(mén)總是打開(kāi)的,如果在設(shè)置登錄賬號(hào)時(shí)沒(méi)有指定默認(rèn)的數(shù)據(jù)庫(kù),則用戶(hù)的權(quán)限將局限在master數(shù)據(jù)庫(kù)以?xún)?nèi)。數(shù)據(jù)庫(kù)的擁有者(owner)可以訪問(wèn)該數(shù)據(jù)庫(kù)的對(duì)象,可以分配訪問(wèn)權(quán)給別的用戶(hù)。在SQLServer中默認(rèn)的情況表示所有的權(quán)利都可以自由轉(zhuǎn)讓和分配。SQLServer數(shù)據(jù)庫(kù)對(duì)象的安全性數(shù)據(jù)庫(kù)對(duì)象的安全性是核查用戶(hù)權(quán)限的最后一個(gè)安全等級(jí)。在創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象時(shí),SQLServer自動(dòng)把該數(shù)據(jù)庫(kù)對(duì)象的擁有權(quán)賦予該對(duì)象的創(chuàng)建者。對(duì)象的擁有者可以實(shí)現(xiàn)對(duì)該對(duì)象的完全控制。默認(rèn)情況下,只有數(shù)據(jù)庫(kù)的擁有者可以在該數(shù)據(jù)庫(kù)下進(jìn)行操作。當(dāng)一個(gè)非數(shù)據(jù)庫(kù)擁有者想訪問(wèn)數(shù)據(jù)庫(kù)里的對(duì)象時(shí),必須事先由數(shù)據(jù)庫(kù)擁有者賦予用戶(hù)對(duì)指定對(duì)象執(zhí)行特定操作的權(quán)限。16.2管理登錄名SQLServer對(duì)用戶(hù)的訪問(wèn)進(jìn)行兩個(gè)階段的檢驗(yàn):認(rèn)證階段:能否登錄到服務(wù)器上

登錄SQLServer時(shí)進(jìn)行的檢查。如果驗(yàn)證通過(guò),用戶(hù)就可以連接到SQLServer上;否則,服務(wù)器將拒絕用戶(hù)的登錄。從而保證了系統(tǒng)安全性。Windows模式混合模式(Windows登錄和SQLServer身份認(rèn)證)許可確認(rèn)階段:能否訪問(wèn)數(shù)據(jù)庫(kù)登錄到SQLServer上以后,系統(tǒng)檢查用戶(hù)是否有訪問(wèn)服務(wù)器上數(shù)據(jù)的權(quán)限。Windows驗(yàn)證模式——Windows登錄認(rèn)證在windows驗(yàn)證模式下,SQLServer檢測(cè)當(dāng)前使用的Windows用戶(hù)帳戶(hù),確定該賬戶(hù)是否有權(quán)限登錄。該模式不必提交登錄名和密碼。好處:數(shù)據(jù)庫(kù)管理員的工作可以集中在管理數(shù)據(jù)庫(kù)上面,而不是管理用戶(hù)賬戶(hù)。對(duì)用戶(hù)賬戶(hù)的管理可以交給Windows去完成。Windows有著更強(qiáng)的用戶(hù)賬戶(hù)管理工具。可以設(shè)置賬戶(hù)鎖定、密碼期限等。SQLServer驗(yàn)證模式

——登錄賬號(hào)有兩種類(lèi)型一類(lèi)是登錄服務(wù)器的登錄賬號(hào)(即服務(wù)器登錄賬號(hào)或用戶(hù)登錄賬號(hào),其名稱(chēng)就是登錄名,必須設(shè)置登錄密碼);另外一類(lèi)是使用數(shù)據(jù)庫(kù)的用戶(hù)賬號(hào)(即數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)或用戶(hù)賬號(hào),其名稱(chēng)就是用戶(hù)名)。比較:登錄賬號(hào)是指能登錄到SQLServer的賬號(hào),屬于服務(wù)器的層面,本身并不能讓用戶(hù)訪問(wèn)服務(wù)器中的數(shù)據(jù)庫(kù),而登錄者要使用服務(wù)器中的數(shù)據(jù)庫(kù)時(shí),必須要有數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)才能存取數(shù)據(jù)庫(kù)。數(shù)據(jù)庫(kù)用戶(hù)是登錄名在數(shù)據(jù)庫(kù)中的映射SQLServer的兩種類(lèi)型賬號(hào)SQL登錄賬號(hào)登錄服務(wù)器SQLServer數(shù)據(jù)庫(kù)數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)訪問(wèn)數(shù)據(jù)庫(kù)SQLServer登錄賬號(hào)和數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)SQLServer登錄賬號(hào)和數(shù)據(jù)庫(kù)用戶(hù)賬號(hào)數(shù)據(jù)庫(kù)用戶(hù)名與登錄名可以不一致,兩者建立映射即可。dbuser1登錄名的操作創(chuàng)建SQL登錄名并指定默認(rèn)數(shù)據(jù)庫(kù)CREATELOGINlognameWITHPASSWORD=[]DEFAULT_DATABASE‘databasename’創(chuàng)建Window登錄名(已存在的windows賬戶(hù))CREATELOGINlognameFROMWINDOWSWITHDEFAULT_DATABASE‘databasename’修改登錄名ALTERLOGINlognameWITHNAME=‘newname’修改登錄密碼ALTERLOGINlognameWITHPASSWORD=‘newname’啟用和禁用登錄名ALTERLOGINlognameDISABLE|ENABLE數(shù)據(jù)庫(kù)用戶(hù)賬戶(hù)的操作創(chuàng)建數(shù)據(jù)庫(kù)用戶(hù)CREATEUSERdbuser[FORLOGINlogname]省略映射的登錄名,表示創(chuàng)建一個(gè)和登錄名相同的數(shù)據(jù)庫(kù)用戶(hù)創(chuàng)建沒(méi)有映射到登錄名的用戶(hù)CREATEUSERdbuserWITHOUTLOGIN禁用某個(gè)數(shù)據(jù)庫(kù)用戶(hù)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)REVOKECONNECTTOdbuser修改數(shù)據(jù)庫(kù)用戶(hù)修改用戶(hù)名ALTERUSERdbuserWITHNAME=‘newname’修改用戶(hù)的默認(rèn)框架ALTERUSERdbuserWITHDEFAULT_SCHEMA=‘schemaname’刪除數(shù)據(jù)庫(kù)用戶(hù)

DROPUSERdbuser16.3角色權(quán)限、角色、用戶(hù)16.3.1固定服務(wù)器角色16.3.2數(shù)據(jù)庫(kù)角色16.3.3管理數(shù)據(jù)庫(kù)角色16.3.4應(yīng)用程序角色權(quán)限、角色、用戶(hù)權(quán)限:用來(lái)規(guī)定特定主體(登錄賬號(hào)或數(shù)據(jù)庫(kù)用戶(hù))在訪問(wèn)安全對(duì)象(服務(wù)器或數(shù)據(jù)庫(kù)或數(shù)據(jù)對(duì)象<包括數(shù)據(jù)表、列、存儲(chǔ)過(guò)程等>)時(shí)允許或不允許的行為。權(quán)限太多了,為每個(gè)用戶(hù)授予對(duì)每個(gè)對(duì)象的操作權(quán)限太繁瑣了,所以,用角色來(lái)管理。角色現(xiàn)實(shí)生活中,角色是起相同作用的人群角色是一種對(duì)權(quán)限集中管理的機(jī)制,每個(gè)角色都設(shè)定了對(duì)SQLServer進(jìn)行的操作類(lèi)型即某些權(quán)限。用戶(hù)用戶(hù)通過(guò)被賦予角色,繼承角色的權(quán)限;角色權(quán)限變更,用戶(hù)權(quán)限同時(shí)變更。SQL角色的種類(lèi)及其操作服務(wù)器角色:獨(dú)立于各個(gè)數(shù)據(jù)庫(kù)。在SQLServer中創(chuàng)建一個(gè)登錄賬號(hào)后,要賦予該登錄者具有管理服務(wù)器的權(quán)限,此時(shí)可設(shè)置該登錄賬號(hào)為服務(wù)器角色的成員。只有固定服務(wù)器角色,可進(jìn)行的操作:查看某登錄名是否是某服務(wù)器角色向某個(gè)服務(wù)器角色添加一個(gè)登錄名,將一個(gè)登錄名從服務(wù)器角色中刪除數(shù)據(jù)庫(kù)角色固定(默認(rèn))數(shù)據(jù)庫(kù)角色用戶(hù)自定義,可進(jìn)行的操作:創(chuàng)建數(shù)據(jù)庫(kù)角色添加和刪除角色成員查看數(shù)據(jù)庫(kù)角色信息16.3.1固定服務(wù)器角色角色描述sysadmin可執(zhí)行任何操作

dbcreator創(chuàng)建和修改數(shù)據(jù)庫(kù)

diskadmin管理磁盤(pán)文件

serveradmin配置服務(wù)器級(jí)的設(shè)置

securityadmin管理和審核服務(wù)器登錄

processadmin管理SQLServer進(jìn)程

bulkadmin執(zhí)行BULKINSERT語(yǔ)句

setupadmin配置和復(fù)制已鏈接的服務(wù)器

16.3.2數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色授予了管理公共數(shù)據(jù)庫(kù)任務(wù)的權(quán)限

用戶(hù)定義的數(shù)據(jù)庫(kù)角色相同數(shù)據(jù)庫(kù)權(quán)限的多個(gè)用戶(hù)

應(yīng)用程序角色包含數(shù)據(jù)庫(kù)中所有用戶(hù)固定的數(shù)據(jù)庫(kù)角色db_owner數(shù)據(jù)庫(kù)的擁有者??蓪?duì)數(shù)據(jù)庫(kù)和其對(duì)象執(zhí)行所有管理工作,此角色的權(quán)限可包括以下其他角色的權(quán)限。db_accessadmin可新建和刪除Windows2000組、Windows2000用戶(hù)和數(shù)據(jù)庫(kù)用戶(hù)。db_datareader可看到數(shù)據(jù)庫(kù)所有用戶(hù)創(chuàng)建的表內(nèi)的數(shù)據(jù)。db_datawriter可新建、修改和刪除數(shù)據(jù)庫(kù)中的所有用戶(hù)創(chuàng)建的表數(shù)據(jù)。db_ddladmin可新建、修改和刪除數(shù)據(jù)庫(kù)中對(duì)象。db_securityadmin可管理數(shù)據(jù)庫(kù)內(nèi)的權(quán)限控制,如管理數(shù)據(jù)庫(kù)的角色和角色內(nèi)的成員,管理對(duì)數(shù)據(jù)庫(kù)對(duì)象的訪問(wèn)控制。db_denydatareader看不到數(shù)據(jù)庫(kù)內(nèi)任何數(shù)據(jù)。db_denydatawriter無(wú)法更改數(shù)據(jù)庫(kù)內(nèi)的任何數(shù)據(jù)。public每個(gè)數(shù)據(jù)庫(kù)用戶(hù)是public角色的成員之一。當(dāng)用戶(hù)被許可訪問(wèn)數(shù)據(jù)庫(kù)時(shí),用戶(hù)將自動(dòng)地變成public角色的的一個(gè)成員。16.3.3管理數(shù)據(jù)庫(kù)角色——?jiǎng)?chuàng)建角色已經(jīng)有了固定數(shù)據(jù)庫(kù)角色,為什么還要建立角色?因?yàn)橛袛?shù)據(jù)庫(kù)用戶(hù),就要對(duì)用戶(hù)權(quán)限進(jìn)行管理,將用戶(hù)加入到特定數(shù)據(jù)庫(kù)角色方便管理用戶(hù)權(quán)限。有特定的需求,需要對(duì)數(shù)據(jù)庫(kù)用戶(hù)進(jìn)行分組,具有相同權(quán)限的用戶(hù)一組。創(chuàng)建數(shù)據(jù)庫(kù)角色

CREATEROLErole_name[AUTHORIZATIONowner_name]role_name將要?jiǎng)?chuàng)建的角色的名稱(chēng)owner_name該角色擁有者的名字,默認(rèn)為dbo。其中owner_name必須是當(dāng)前數(shù)據(jù)庫(kù)里已有用戶(hù)或角色(固定數(shù)據(jù)庫(kù)角色)在新角色中添加數(shù)據(jù)庫(kù)用戶(hù)EXECsp_addrolemember‘角色名’,’數(shù)據(jù)庫(kù)用戶(hù)名’16.3.3管理數(shù)據(jù)庫(kù)角色——查看、刪除角色查看數(shù)據(jù)庫(kù)角色信息查詢(xún)系統(tǒng)函數(shù)IS_MUMBER判斷當(dāng)前數(shù)據(jù)庫(kù)用戶(hù)是否屬于某個(gè)數(shù)據(jù)庫(kù)用戶(hù)SELECTIS_MEMBER(‘db_owner’)刪除數(shù)據(jù)庫(kù)角色SQL不允許刪除含有成員的角色。所以,必須先刪除角色下的所有用戶(hù),才能刪除角色先將數(shù)據(jù)庫(kù)用戶(hù)從角色集合中去除EXECsp_droprolemember‘角色名’,’數(shù)據(jù)庫(kù)用戶(hù)名’DROPROLE角色名16.3.4應(yīng)用程序角色——概念

應(yīng)用程序角色是用戶(hù)定義數(shù)據(jù)庫(kù)角色的一種形式,與固定數(shù)據(jù)庫(kù)角色不同。僅允許特定用戶(hù)來(lái)訪問(wèn)數(shù)據(jù)庫(kù)中的特定數(shù)據(jù),不使用這些特定連接,無(wú)法訪問(wèn)這些數(shù)據(jù),從而實(shí)現(xiàn)安全管理的目的。例如,管理員允許雇員使用雇員處理程序錄入新員工、離職員工和打印統(tǒng)計(jì)報(bào)表等。三個(gè)特點(diǎn):默認(rèn)情況下,應(yīng)用程序角色不包含任何成員應(yīng)用程序角色必須激活才能發(fā)揮作用應(yīng)用程序角色有密碼,擁有密碼的用戶(hù)才能激活該角色16.3.4應(yīng)用程序角色——操作創(chuàng)建應(yīng)用程序角色CREATEAPPLICATIONROLEapproleWITHPASSWORD=‘password’激活應(yīng)用程序角色EXECsp_setapprole‘a(chǎn)pprole’,’password’解除被激活的應(yīng)用程序角色EXECsp_unsetapprole‘a(chǎn)pprole’刪除應(yīng)用程序角色DROPAPPLICATIONROLE‘a(chǎn)pprole’16.4權(quán)限權(quán)限是執(zhí)行操作、訪問(wèn)數(shù)據(jù)的通行證。主體只有擁有對(duì)某安全對(duì)象的指定權(quán)限,才能對(duì)該對(duì)象執(zhí)行相應(yīng)的操作。安全對(duì)象權(quán)限主體例如:安全對(duì)象是表,對(duì)表的操作包括增刪改查等四個(gè)權(quán)限。16.4.1權(quán)限概述預(yù)先定義權(quán)限和預(yù)先未定義權(quán)限預(yù)先定義權(quán)限是在系統(tǒng)安裝之后,不必通過(guò)授予即擁有的權(quán)限。預(yù)先未定義的權(quán)限是指那些需要經(jīng)過(guò)授權(quán)或繼承才能得到的權(quán)限。針對(duì)所有對(duì)象的權(quán)限和針對(duì)特殊對(duì)象的權(quán)限。針對(duì)所有對(duì)象的權(quán)限:可以針對(duì)SQLServer系統(tǒng)中所有的對(duì)象,例如,CONTROL權(quán)限是所有對(duì)象都有的權(quán)限,表示擁有對(duì)象所定義的所有權(quán)限。針對(duì)特殊對(duì)象的權(quán)限:是指某些權(quán)限只能在指定的對(duì)象上起作用,例如INSERT可以是表的權(quán)限,但是不能是存儲(chǔ)過(guò)程的權(quán)限,而EXECUTE可以是存儲(chǔ)過(guò)程的權(quán)限,但是不能是表的權(quán)限。安全對(duì)象很多種,權(quán)限也不同安全對(duì)象的常用權(quán)限對(duì)象可以被授權(quán)或拒絕的操作數(shù)據(jù)表SELECT、UPDATE、DELETE、INSERT、REFERENCE列SELECT、UPDATE視圖SELECT、UPDATE、INSERT、DELETE存儲(chǔ)過(guò)程EXECUTE16.4.2管理權(quán)限執(zhí)行權(quán)限管理操作包括1.授予權(quán)限

GRANT2.撤銷(xiāo)權(quán)限REVOKE3.拒絕權(quán)限D(zhuǎn)ENY安全主體獲得權(quán)限的方式第一種:直接使用GRANT語(yǔ)句為其授予權(quán)限。第二種:通過(guò)作為角色成員繼承角色的權(quán)限,使用REVOKE語(yǔ)句只能刪除安全主體通過(guò)GRANT得到的權(quán)限,要想徹底刪除安全主體的特定權(quán)限必須使用DENY語(yǔ)句。用戶(hù)和角色的權(quán)限以記錄的形式存儲(chǔ)在各個(gè)數(shù)據(jù)庫(kù)的sysprotects系統(tǒng)表中。16.4.2管理權(quán)限——授予權(quán)限為哪個(gè)安全對(duì)象授予什么權(quán)限,可以轉(zhuǎn)授給哪個(gè)用戶(hù)

GRANT語(yǔ)法格式:

GRANT{ALL|statement[,...n]}TOsecurity_account[,...n]授予對(duì)數(shù)據(jù)庫(kù)對(duì)象操作的權(quán)限。語(yǔ)法格式:

GRANT

{ALL[PRIVILEGES]|permission[,...n]}{

[(column[,...n])]ON{table|view}

|ON{table|view}[(column[,...n])]

|ON{stored_procedure|extended_procedure}

|ON{user_defined_function}}TOsecurity_account[,...n][WITHGRANTOPTION][AS{group|role}]16.4.3管理對(duì)SQLServer實(shí)例和數(shù)據(jù)庫(kù)的訪問(wèn)

控制登錄操作(為用戶(hù)授予權(quán)限)例:為登錄名Marylogin授予查看數(shù)據(jù)庫(kù)狀態(tài)的權(quán)限使用GRANT命令GRANTVIEWSERVERSTATETOMarylogin為數(shù)據(jù)庫(kù)角色授予權(quán)限例:如為數(shù)據(jù)庫(kù)角色Auditorsrole授予BACKUPDATABASE(備份數(shù)據(jù)庫(kù))權(quán)限:使用GRANT命令:GRANTBACKUPDATABASETOAuditorsrole16.4.4管理對(duì)表和列的訪問(wèn)——表權(quán)限更改對(duì)表的訪問(wèn):表的常用權(quán)限權(quán)

限描

述ALTER可以更改表屬性CONTROL提供所有權(quán)之類(lèi)的權(quán)限D(zhuǎn)ELETE可以從表中刪除行INSERT可以向表中插入行REFERENCES可以通過(guò)外鍵引用其他表SELECT可以在表中選擇行TAKEOWNERSHIP可以取得表的所有權(quán)UPDATE可以在表中更新行VIEWDEFINITION可以訪問(wèn)表的元數(shù)據(jù)16.4.4管理對(duì)表和列的訪問(wèn)——表權(quán)限授權(quán)數(shù)據(jù)庫(kù)用戶(hù)或角色對(duì)表的訪問(wèn)使用GRANT語(yǔ)句授權(quán)數(shù)據(jù)庫(kù)用戶(hù)或者角色對(duì)表的訪問(wèn)。如授予用戶(hù)Peteruse對(duì)表Adminschema.Student的SELECT、INSERT和UPDATE權(quán)限:GRANTSELECT,INSERT,UPDATE

ONAdminschema.StudentTOPeteruse;清除之前授予的表的訪權(quán)限如清除之前授予用戶(hù)Peteruse對(duì)表student的查詢(xún)權(quán):

REVOKESELECTONAdminschema.StudentTOPeteruse16.4.4管理對(duì)表和列的訪問(wèn)——列權(quán)限更改對(duì)列的訪問(wèn):列的常用權(quán)限權(quán)

限描

述SELECT可以選擇列UPDATE可以更新列REFERENCE可以通過(guò)外鍵引用列16.4.4管理對(duì)表和列的訪問(wèn)——列權(quán)限例如為Peteruse用戶(hù)授予了在表Adminschema.Student的StudentDate列上SELECT和UPDATE的權(quán)限。

GRANTSELECT,UPDATE(StudentDate)ONAdminschema.StudentTOPeteruse取消對(duì)列的訪問(wèn)授權(quán),可在用戶(hù)或角色的屬性窗口設(shè)置也可使用REVOKE語(yǔ)句來(lái)實(shí)現(xiàn),如:REVOKEUPDATE(StudentDate)ONAdminschema.StudentTOPeteruse16.4.5管理對(duì)可編程對(duì)象的訪問(wèn)—存儲(chǔ)過(guò)程可編程對(duì)象安全性包括:存儲(chǔ)過(guò)程和用戶(hù)定義函數(shù)存儲(chǔ)過(guò)程權(quán)限使用命令GRANT,如為數(shù)據(jù)庫(kù)用戶(hù)Peteruse授予存儲(chǔ)過(guò)程dbo.uspGetBillOfMaterials的EXECUTE權(quán)限:GRANTEXECUTEOndbo.uspGetBillOfMaterialsTOpeteruseALTER可以更改存儲(chǔ)過(guò)程屬性CONTROL可以提供所有權(quán)之類(lèi)的權(quán)限EXECUTE可以執(zhí)行存儲(chǔ)過(guò)程TAKEOWNERSHIP可以取得存儲(chǔ)過(guò)程的所有權(quán)VIEWDEFINITION可以查看存儲(chǔ)過(guò)程的元數(shù)據(jù)16.4.5管理對(duì)可編程對(duì)象的訪問(wèn)—函數(shù)用戶(hù)定義函數(shù)權(quán)限:包括標(biāo)量函數(shù)和表值函數(shù)ALTER可以更改函數(shù)屬性CONTROL可以提供所有權(quán)之類(lèi)的權(quán)限TAKEOWNERSHIP可以取得函數(shù)的所有權(quán)VIEWDEFINITION可以查看函數(shù)的元數(shù)據(jù)EXECUTE可以執(zhí)行用戶(hù)定義函數(shù)(只對(duì)標(biāo)量函數(shù)有效

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論