




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第9章數(shù)據(jù)庫(kù)的安全性主講教師毛一梅2010.011第9章數(shù)據(jù)庫(kù)的安全性主講教師毛一梅1問(wèn)題的提出數(shù)據(jù)庫(kù)的一大特點(diǎn)是數(shù)據(jù)可以共享數(shù)據(jù)共享必然帶來(lái)數(shù)據(jù)庫(kù)的安全性問(wèn)題數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)共享不能是無(wú)條件的共享例:軍事秘密、國(guó)家機(jī)密、新產(chǎn)品實(shí)驗(yàn)數(shù)據(jù)、市場(chǎng)需求分析、市場(chǎng)營(yíng)銷策略、銷售計(jì)劃、客戶檔案、醫(yī)療檔案、銀行儲(chǔ)蓄數(shù)據(jù)數(shù)據(jù)庫(kù)安全性2問(wèn)題的提出數(shù)據(jù)庫(kù)的一大特點(diǎn)是數(shù)據(jù)可以共享數(shù)據(jù)庫(kù)安全性2一、計(jì)算機(jī)安全性機(jī)制數(shù)據(jù)安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止非法使用造成的數(shù)據(jù)泄露、更改或破壞。安全性問(wèn)題不是數(shù)據(jù)庫(kù)系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問(wèn)題。只是在數(shù)據(jù)庫(kù)系統(tǒng)中大量數(shù)據(jù)集中存放,且為許多最終用戶直接共享,因而其安全性問(wèn)題尤為突出。3一、計(jì)算機(jī)安全性機(jī)制數(shù)據(jù)安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止非法使用造計(jì)算機(jī)系統(tǒng)中,安全措施是一級(jí)一級(jí)層層設(shè)置
計(jì)算機(jī)系統(tǒng)的安全模型
4計(jì)算機(jī)系統(tǒng)中,安全措施是一級(jí)一級(jí)層層設(shè)置 計(jì)算機(jī)系統(tǒng)的安全在安全模型中,用戶標(biāo)識(shí)與鑒定是系統(tǒng)提供的最外層安全保護(hù)措施。只有在DBMS成功注冊(cè)了的人員才是該數(shù)據(jù)庫(kù)的用戶,才可以訪問(wèn)數(shù)據(jù)庫(kù)。用戶標(biāo)識(shí)與鑒定解決了檢查用戶是否合法的問(wèn)題,但是合法用戶的存取權(quán)限不盡相同。數(shù)據(jù)安全性的核心問(wèn)題是DBMS的存取控制機(jī)制,確保進(jìn)入系統(tǒng)的用戶只能進(jìn)行合法的操作。5在安全模型中,用戶標(biāo)識(shí)與鑒定是系統(tǒng)提供的最外層安全保護(hù)措施。數(shù)據(jù)庫(kù)中的用戶按其操作權(quán)限可分為三類:數(shù)據(jù)庫(kù)系統(tǒng)管理員:在數(shù)據(jù)庫(kù)中具有全部的權(quán)限,當(dāng)用戶以系統(tǒng)管理員身份登錄進(jìn)行操作時(shí),系統(tǒng)不對(duì)其權(quán)限進(jìn)行檢查。數(shù)據(jù)庫(kù)對(duì)象擁有者:創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的用戶即為數(shù)據(jù)庫(kù)對(duì)象的擁有者。數(shù)據(jù)庫(kù)對(duì)象擁有者對(duì)其所擁有的對(duì)象具有一切權(quán)限。普通用戶:只具有授予用戶的對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的增加、刪除、更改和查詢的權(quán)限。操作系統(tǒng)一級(jí)也有自己的保護(hù)措施。數(shù)據(jù)最后還可以以加密的形式存儲(chǔ)到數(shù)據(jù)庫(kù)中。6數(shù)據(jù)庫(kù)中的用戶按其操作權(quán)限可分為三類:數(shù)據(jù)庫(kù)系統(tǒng)管理員:在數(shù)二、SQLServer2005的安全策略SQLServer2005提供的安全策略可以劃分為以下4個(gè)等級(jí):客戶機(jī)操作系統(tǒng)的安全性SQLServer的登錄安全性數(shù)據(jù)庫(kù)的安全性數(shù)據(jù)庫(kù)對(duì)象的安全性7二、SQLServer2005的安全策略SQLSerSQLServer認(rèn)證模式如果用戶要訪問(wèn)SQLServer時(shí),需要經(jīng)過(guò)兩個(gè)認(rèn)證過(guò)程:一是身份驗(yàn)證,只驗(yàn)證用戶是否有連接到SQLServer數(shù)據(jù)庫(kù)服務(wù)器的資格;二是權(quán)限驗(yàn)證,檢驗(yàn)用戶是否有對(duì)指定數(shù)據(jù)庫(kù)的訪問(wèn)權(quán),并且當(dāng)用戶操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)或?qū)ο髸r(shí)驗(yàn)證用戶是否有相應(yīng)的操作權(quán)限。8SQLServer認(rèn)證模式如果用戶要訪問(wèn)SQLServe兩種驗(yàn)證模式:在驗(yàn)證階段,系統(tǒng)對(duì)登錄用戶進(jìn)行驗(yàn)證。SQLServer和Windows是結(jié)合在一起的,因此,產(chǎn)生了兩種驗(yàn)證模式:Windows身份驗(yàn)證模式和混合驗(yàn)證模式。9兩種驗(yàn)證模式:在驗(yàn)證階段,系統(tǒng)對(duì)登錄用戶進(jìn)行驗(yàn)證。9Windows身份驗(yàn)證模式在Windows身份驗(yàn)證模式下,用戶必須首先登錄到Windows中,然后再登錄到SQLServer。而且用戶登錄到SQLServer時(shí),只需選擇Windows身份驗(yàn)證模式,而無(wú)需再提供登錄帳號(hào)和密碼,系統(tǒng)會(huì)從用戶登錄到Windows時(shí)提供的用戶名和密碼中查找當(dāng)前用戶的登錄信息,以判斷該用戶是否是SQLServer的合法用戶。10Windows身份驗(yàn)證模式在Windows身份驗(yàn)證模式下,用注意:①如果用戶在登錄SQLServer時(shí)未給出用戶登錄名,則SQLServer將使用Windows驗(yàn)證模式。②如果SQLServer被設(shè)置為Windows驗(yàn)證模式,則用戶在登錄時(shí)即使輸入一個(gè)具體的登錄名時(shí),SQLServer也將忽略該登錄名。11注意:①如果用戶在登錄SQLServer時(shí)未給出用戶登錄名混合驗(yàn)證模式?;旌向?yàn)證模式表示SQLServer接受Windows授權(quán)用戶和SQLServer授權(quán)用戶。在該認(rèn)證模式下,用戶在連接SQLServer時(shí)必須提供登錄名和密碼,然后系統(tǒng)確定用戶帳號(hào)在Winwods操作系統(tǒng)下是否可信,對(duì)于可信連接用戶,系統(tǒng)直接采用Windows身份驗(yàn)證機(jī)制,否則采用SQLServer驗(yàn)證機(jī)制。SQLServer驗(yàn)證機(jī)制是系統(tǒng)自己執(zhí)行驗(yàn)證處理,它通過(guò)與系統(tǒng)表syslogins中信息比較,檢查輸入的登錄帳號(hào)是否已存在且密碼是否正確。如果匹配,則表明登錄成功,否則身份驗(yàn)證失敗,用戶將收到錯(cuò)誤信息。12混合驗(yàn)證模式?;旌向?yàn)證模式表示SQLServer接受Win注意Windows操作系統(tǒng)的用戶既可以使用Windows認(rèn)證,也可以使用SQLServer驗(yàn)證。若不是Windows操作系統(tǒng)的用戶只能使用SQLServer驗(yàn)證。13注意Windows操作系統(tǒng)的用戶既可以使用Windows認(rèn)證驗(yàn)證模式的設(shè)置
步驟1:打開(kāi)“SQLServerManagementStudio”集成環(huán)境,在“對(duì)象資源管理器”窗口中用鼠標(biāo)右擊服務(wù)器,在彈出的快捷菜單中選擇【屬性】選項(xiàng),打開(kāi)【服務(wù)器屬性】對(duì)話框;步驟2:在【服務(wù)器屬性】對(duì)話框中,選擇【安全性】選項(xiàng)。14驗(yàn)證模式的設(shè)置步驟1:打開(kāi)“SQLServerMana1515三、登錄帳號(hào)和用戶帳號(hào)的管理登錄服務(wù)器的登錄帳號(hào),也稱登錄名;操作數(shù)據(jù)庫(kù)的用戶帳號(hào)。登錄帳號(hào)是指能登錄到SQLServer服務(wù)器的帳號(hào),屬于服務(wù)器的層面,本身并不能讓用戶訪問(wèn)服務(wù)器中的數(shù)據(jù)庫(kù)。如果登錄服務(wù)器的用戶要訪問(wèn)數(shù)據(jù)庫(kù)時(shí)必須擁有用戶帳號(hào)。16三、登錄帳號(hào)和用戶帳號(hào)的管理登錄服務(wù)器的登錄帳號(hào),也稱登錄名在安裝SQLServer后,系統(tǒng)默認(rèn)創(chuàng)建兩個(gè)登錄帳號(hào),即sa帳號(hào)和服務(wù)器帳號(hào)。其中sa是超級(jí)管理員帳號(hào),允許SQLServer的系統(tǒng)管理員登錄。盡管如此,在實(shí)際的使用過(guò)程中還需要用戶根據(jù)應(yīng)用需要對(duì)登錄帳戶進(jìn)行必要的管理。17在安裝SQLServer后,系統(tǒng)默認(rèn)創(chuàng)建兩個(gè)登錄帳號(hào),即s1、創(chuàng)建登錄帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)(2)利用T-SQL語(yǔ)句創(chuàng)建登錄帳號(hào)181、創(chuàng)建登錄帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)在“對(duì)象資源管理器”中,逐級(jí)展開(kāi)“服務(wù)器”【安全性】【登錄名】,右擊【登錄名】選擇新建登錄名19(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)在“對(duì)象資源管理器例1, 利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)tch_admin,密碼為myteacher,默認(rèn)數(shù)據(jù)庫(kù)為teachingData步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”集成環(huán)境,在“對(duì)象資源管理器”中,逐級(jí)展開(kāi)“服務(wù)器”【安全性】【登錄名】選項(xiàng);步驟2:右擊【登錄…】選項(xiàng),在彈出的快捷菜單中選擇【新建登錄名】選項(xiàng),打開(kāi)【登錄名—新建】對(duì)話框。20例1, 利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)tch_admin2121步驟3:在【登錄名】右側(cè)的文本框中輸入要?jiǎng)?chuàng)建的登錄帳號(hào)(如stu_admin),若選擇“Windows身份驗(yàn)證”,可以通過(guò)單擊右側(cè)的【搜索】按鈕來(lái)查找并添加Windows操作系統(tǒng)中的用戶名稱;若選擇“SQLServer身份驗(yàn)證”,則需在【密碼】和【確認(rèn)密碼】文本框中輸入登錄時(shí)采用的密碼。步驟4:在【默認(rèn)數(shù)據(jù)庫(kù)】下拉列表中選擇該登錄帳號(hào)對(duì)應(yīng)的默認(rèn)使用的數(shù)據(jù)庫(kù),選擇“TeachingData”;在【默認(rèn)語(yǔ)言】下拉列表中選擇登錄后使用的默認(rèn)語(yǔ)言,一般采用默認(rèn)值。然后,單擊【確定】按鈕即可新建一個(gè)登錄帳號(hào)。22步驟3:在【登錄名】右側(cè)的文本框中輸入要?jiǎng)?chuàng)建的登錄帳號(hào)(如s(2)利用T-SQL語(yǔ)句創(chuàng)建登錄帳號(hào)CREATELOGINlogin_name
{WITH<PASSWORD='password',[<SID=sid
|DEFAULT_DATABASE=database
|DEFAULT_LANGUAGE=language>[,…]]>|FROM<WINDOWS[WITH<DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language>[,…]>}23(2)利用T-SQL語(yǔ)句創(chuàng)建登錄帳號(hào)CREATELOGI參數(shù)說(shuō)明login_name:指定創(chuàng)建的登錄帳號(hào)。如果從Windows域帳戶映射login_name,則login_name必須用方括號(hào)[]括起來(lái)。password:僅適用于SQLServer登錄帳號(hào),指定正在創(chuàng)建的登錄帳號(hào)的密碼。sid:僅適用于SQLServer登錄帳號(hào)。指定新SQLServer登錄帳號(hào)的GUID。如果未選擇此選項(xiàng),則SQLServer將自動(dòng)指派GUID。database:指定將指派給登錄帳號(hào)的默認(rèn)數(shù)據(jù)庫(kù),若此項(xiàng)缺省,默認(rèn)數(shù)據(jù)庫(kù)將設(shè)置為master。language:指定將指派給登錄帳號(hào)的默認(rèn)語(yǔ)言。若此選項(xiàng)缺省,則默認(rèn)語(yǔ)言將設(shè)置為服務(wù)器的當(dāng)前默認(rèn)語(yǔ)言。WINDOWS:指定將登錄帳號(hào)映射到Windows登錄名。24參數(shù)說(shuō)明login_name:指定創(chuàng)建的登錄帳號(hào)。如果從Wi例2,在SQLServer服務(wù)器上,創(chuàng)建stu_admin登錄帳號(hào),密碼為123的,默認(rèn)數(shù)據(jù)庫(kù)為teachingData。CREATELOGINstu_adminWITHPASSWORD='123',DEFAULT_DATABASE=TeachingData25例2,在SQLServer服務(wù)器上,創(chuàng)建stu_admin注意雖然SQLServer2005也提供了系統(tǒng)存儲(chǔ)過(guò)程sp_grantlogin和sp_addlogin創(chuàng)建登錄帳號(hào),但由于后續(xù)的SQLServer版本將取消此項(xiàng)功能。因此,應(yīng)避免在新的開(kāi)發(fā)工作中使用該功能。26注意雖然SQLServer2005也提供了系統(tǒng)存儲(chǔ)過(guò)程s2、創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)
(1)利用“對(duì)象資源管理器”創(chuàng)建用戶帳號(hào)(2)利用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)272、創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建(1)利用“對(duì)象資源管理器”創(chuàng)建用戶帳號(hào)在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】“TeachingData”【安全性】【用戶】,右擊【用戶】選擇“新建用戶”命令。28(1)利用“對(duì)象資源管理器”創(chuàng)建用戶帳號(hào)在“對(duì)象資源管理器例3,在“TeachingData”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)stu_admin登錄帳號(hào)下的“U1”用戶,具體操作步驟為:步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】“TeachingData”【安全性】【用戶】。步驟2:在【用戶】項(xiàng)右擊鼠標(biāo),在彈出的快捷菜單中選擇【新建用戶】選項(xiàng),打開(kāi)【數(shù)據(jù)庫(kù)用戶】對(duì)話框,29例3,在“TeachingData”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)stu步驟3:在【用戶名】右側(cè)文本框中輸入新建的用戶名U1;在【登錄名】文本框中直接輸入已存在的登錄帳號(hào)stu_admin,或單擊【登錄名】文本框右側(cè)的【…】按鈕,選擇登錄帳號(hào)stu_admin。步驟5:?jiǎn)螕簟敬_定】按鈕即可完成用戶帳號(hào)的創(chuàng)建。30步驟3:在【用戶名】右側(cè)文本框中輸入新建的用戶名U1;在【登3131(2)利用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)向當(dāng)前數(shù)據(jù)庫(kù)添加新的用戶帳號(hào),也可使用CREATEUSER語(yǔ)句來(lái)實(shí)現(xiàn)。其語(yǔ)法格式為:CREATEUSERuser_name[{{FOR|FROM}{LOGINlogin_name}|WITHOUTLOGIN]32(2)利用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)向當(dāng)前數(shù)據(jù)庫(kù)添加參數(shù)說(shuō)明user_name:指定在此數(shù)據(jù)庫(kù)中用于識(shí)別該用戶的名稱。login_name:指定要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)用戶帳號(hào)的SQLServer登錄帳號(hào)。login_name必須是服務(wù)器中有效的登錄帳號(hào)。WITHOUTLOGIN:指定不應(yīng)將用戶映射到現(xiàn)有登錄帳號(hào)。33參數(shù)說(shuō)明user_name:指定在此數(shù)據(jù)庫(kù)中用于識(shí)別該用戶例4,在TeachingData數(shù)據(jù)庫(kù)中為登錄帳號(hào)tch_admin創(chuàng)建用戶帳號(hào),并取名為U2。USETeachingData;CREATEUSERU2FORLOGINtch_admin34例4,在TeachingData數(shù)據(jù)庫(kù)中為登錄帳號(hào)tch_a注意:(1)如果省略FORLOGIN,則新的數(shù)據(jù)庫(kù)用戶將被映射到同名的SQLServer登錄名。(2)不能使用CREATEUSER創(chuàng)建guest用戶,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)中均已存在guest用戶??梢酝ㄟ^(guò)授予guest用戶CONNECT權(quán)限來(lái)啟用該用戶。35注意:(1)如果省略FORLOGIN,則新的數(shù)據(jù)庫(kù)用戶3、管理登錄帳號(hào)和用戶帳號(hào)利用“對(duì)象資源管理器”管理利用T-SQL語(yǔ)句管理363、管理登錄帳號(hào)和用戶帳號(hào)利用“對(duì)象資源管理器”管理36(1)利用“對(duì)象資源管理器”管理登錄帳戶查看:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【安全性】【登錄名】。修改屬性:在對(duì)象資源管理器中右擊需要修改帳號(hào)屬性的登錄名。刪除:右擊登錄名,選擇【刪除】命令。37(1)利用“對(duì)象資源管理器”管理登錄帳戶查看:?jiǎn)?dòng)“Micr(2)利用“對(duì)象資源管理器”查看和刪除用戶帳號(hào)查看:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】【用戶數(shù)據(jù)庫(kù)】(如TeachingData)【安全性】【用戶】。即可看到當(dāng)前數(shù)據(jù)庫(kù)的所有用戶帳號(hào)。步驟2:右擊欲刪除的用戶名,在彈出的快捷菜單中選擇【刪除】選項(xiàng),在打開(kāi)的【刪除對(duì)象】對(duì)話框中單擊【確定】按鈕即可。38(2)利用“對(duì)象資源管理器”查看和刪除用戶帳號(hào)查看:?jiǎn)?dòng)“M(3)利用T-SQL語(yǔ)句管理利用T-SQL語(yǔ)句查看服務(wù)器的登錄帳號(hào)使用sp_helplogins系統(tǒng)存儲(chǔ)過(guò)程可以查看指定的登錄帳號(hào)信息和相關(guān)用戶帳號(hào)的信息。其語(yǔ)法格式為:sp_helplogins['login_name']參數(shù)說(shuō)明:login_name:指定要查看的登錄名。login_name的數(shù)據(jù)類型為sysname,默認(rèn)值為NULL。如果指定該參數(shù),則login_name必須存在。如果未指定login,則返回當(dāng)前數(shù)據(jù)庫(kù)的所有登錄帳號(hào)的信息。39(3)利用T-SQL語(yǔ)句管理利用T-SQL語(yǔ)句查看服務(wù)器的說(shuō)明:在該語(yǔ)句的結(jié)果集中將返回兩個(gè)報(bào)告,第一個(gè)報(bào)告包含指定的登錄帳號(hào)信息,第二個(gè)報(bào)告包含與登錄帳號(hào)相關(guān)聯(lián)的用戶帳號(hào)信息。40說(shuō)明:在該語(yǔ)句的結(jié)果集中將返回兩個(gè)報(bào)告,第一個(gè)報(bào)告包含指定的利用T-SQL語(yǔ)句修改服務(wù)器的登錄帳號(hào)格式:ALTERLOGINlogin_name
{ENABLE|DISABLE|WITH<PASSWORD='password'[OLD_PASSWORD='oldpassword']|DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|NAME=login_name>[,...]}41利用T-SQL語(yǔ)句修改服務(wù)器的登錄帳號(hào)格式:41參數(shù)說(shuō)明login_name:指定正在更改的SQLServer登錄帳號(hào)。ENABLE|DISABLE:?jiǎn)⒂没蚪么说卿泿ぬ?hào)。password:指定正在更改的登錄帳號(hào)的密碼,僅適用于SQLServer登錄帳號(hào)。oldpassword:要指派新密碼的登錄帳號(hào)的當(dāng)前密碼,僅適用于SQLServer登錄帳號(hào)。database:指定將指派給登錄帳號(hào)的默認(rèn)數(shù)據(jù)庫(kù)。language:指定將指派給登錄帳號(hào)的默認(rèn)語(yǔ)言。login_name:正在重命名的登錄帳號(hào)的新名稱。SQLServer登錄的新名稱不能包含反斜杠字符(\)。42參數(shù)說(shuō)明login_name:指定正在更改的SQLSe例5禁用stu_admin登錄帳號(hào)。ALTERLOGINstu_adminDISABLE43例5禁用stu_admin登錄帳號(hào)。43例6啟用stu_admin登錄帳號(hào),并將帳號(hào)的登錄密碼更改為111222。ALTERLOGINstu_adminENABLE;ALTERLOGINstu_adminWITHPASSWORD='111222'44例6啟用stu_admin登錄帳號(hào),并將帳號(hào)的登錄密碼更改為例7,將stu_admin登錄帳號(hào)稱更改為user1。ALTERLOGINstu_adminWITHNAME=user145例7,將stu_admin登錄帳號(hào)稱更改為user1。45利用T-SQL語(yǔ)句刪除服務(wù)器的登錄帳號(hào)語(yǔ)法格式:DROPLOGINlogin_name其中,login_name是指定要?jiǎng)h除的登錄帳號(hào)。46利用T-SQL語(yǔ)句刪除服務(wù)器的登錄帳號(hào)語(yǔ)法格式:46例8,將user1登錄帳號(hào)刪除。DROPLOGINuser1注意:不能刪除正在使用的登錄名,也不能刪除擁有任何安全對(duì)象、服務(wù)器級(jí)別對(duì)象或SQL代理作業(yè)的登錄名。47例8,將user1登錄帳號(hào)刪除。47利用T-SQL語(yǔ)句查看數(shù)據(jù)庫(kù)的用戶帳號(hào)使用sp_helpuser系統(tǒng)存儲(chǔ)過(guò)程可以查看有關(guān)當(dāng)前數(shù)據(jù)庫(kù)中的用戶帳號(hào)信息。其語(yǔ)法格式為:sp_helpuser[security_account]參數(shù)說(shuō)明:
security_account:當(dāng)前數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)用戶帳號(hào)或數(shù)據(jù)庫(kù)角色的名稱。security_account必須存在于當(dāng)前數(shù)據(jù)庫(kù)中。security_account的數(shù)據(jù)類型為sysname,默認(rèn)值為NULL。如果未指定security_account,則sp_helpuser返回當(dāng)前數(shù)據(jù)庫(kù)主體的信息。48利用T-SQL語(yǔ)句查看數(shù)據(jù)庫(kù)的用戶帳號(hào)使用sp_helpus利用T-SQL語(yǔ)句修改數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:ALTERUSERuser_name
WITH<NAME=new_user_name|DEFAULT_SCHEMA=schema_name>[,...n]參數(shù)說(shuō)明:user_name:指定在此數(shù)據(jù)庫(kù)中用于識(shí)別該用戶的名稱。new_user_name:指定此用戶的新名稱,且不存在于在當(dāng)前數(shù)據(jù)庫(kù)。schema_name:指定服務(wù)器在解析此用戶的對(duì)象名稱時(shí)將搜索的第一個(gè)架構(gòu)。49利用T-SQL語(yǔ)句修改數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:49例9,將數(shù)據(jù)庫(kù)登錄用戶U1的名稱更改為user_stu。ALTERUSERU1WITHNAME=user_stu50例9,將數(shù)據(jù)庫(kù)登錄用戶U1的名稱更改為user_stu。50利用T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:DROPUSERuser_name51利用T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:51比較登錄帳戶管理登錄帳戶管理用戶帳戶管理功能命令功能命令創(chuàng)建登錄帳戶CREATELOGIN創(chuàng)建登錄帳戶CREATEUSER禁用登錄帳戶ALTERLOGIN…DISABLE禁用用戶帳戶ALTERUSER…DISABLE刪除登錄帳戶DROPLOGIN刪除用戶帳戶DROPUSER修改登錄帳戶ALTERLOGIN修改用戶帳戶ALTERUSER查看登錄帳戶sp_helplogins查看用戶帳戶sp_helpuser52比較登錄帳戶管理登錄帳戶管理用戶帳戶管理功能命令功能命令創(chuàng)建四、權(quán)限管理當(dāng)用戶成為指定數(shù)據(jù)庫(kù)中的合法用戶之后,除了具有一些系統(tǒng)表的查詢權(quán)之外,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)和對(duì)象并不具有任何操作權(quán)限,因此,接下來(lái)就需要為數(shù)據(jù)庫(kù)中的用戶帳號(hào)授予數(shù)據(jù)庫(kù)數(shù)據(jù)及對(duì)象的操作權(quán)限。53四、權(quán)限管理當(dāng)用戶成為指定數(shù)據(jù)庫(kù)中的合法用戶之后,除了具有一(一)SQLServer權(quán)限分類對(duì)象權(quán)限語(yǔ)句權(quán)限54(一)SQLServer權(quán)限分類對(duì)象權(quán)限541、對(duì)象權(quán)限對(duì)象權(quán)限是針對(duì)表、視圖和存儲(chǔ)過(guò)程而言的,是指用戶對(duì)數(shù)據(jù)庫(kù)對(duì)象中的數(shù)據(jù)能夠執(zhí)行哪些操作。例如當(dāng)用戶U1要成功修改StuInfo表中的數(shù)據(jù),前提是用戶U1已獲得StuInfo表的UPDATE權(quán)限。551、對(duì)象權(quán)限對(duì)象權(quán)限是針對(duì)表、視圖和存儲(chǔ)過(guò)程而言的,是指用戶對(duì)象權(quán)限表權(quán)限描述SELECT可以查詢表、視圖中的數(shù)據(jù)INSERT可以向表中插入行UPDATE可以在表中修改表中的數(shù)據(jù)DELETE可以從表中刪除行EXECUTE可以執(zhí)行存儲(chǔ)過(guò)程ALTER可以修改表的屬性REFERENCES可以通過(guò)外鍵引用其他表TAKEOWNERSHIP可以取得表的所有權(quán)56對(duì)象權(quán)限表權(quán)限描述SELECT可以查詢表、視圖中的數(shù)據(jù)INS其中SELECT、INSERT、UPDATE和DELETE權(quán)限可以應(yīng)用到整個(gè)表或視圖中;SELECT和UPDATE權(quán)限還可以有選擇地應(yīng)用到表或視圖中的指定列上。57其中SELECT、INSERT、UPDATE和DELETE權(quán)2.語(yǔ)句權(quán)限語(yǔ)句權(quán)限是指用戶是否具有權(quán)限來(lái)執(zhí)行某一語(yǔ)句,這些語(yǔ)句通常是一些具有管理性的操作,例如創(chuàng)建表。這類語(yǔ)句的特點(diǎn)是在語(yǔ)句執(zhí)行前操作的對(duì)象并不存在于數(shù)據(jù)庫(kù)中,所以將其歸為語(yǔ)句權(quán)限。582.語(yǔ)句權(quán)限語(yǔ)句權(quán)限是指用戶是否具有權(quán)限來(lái)執(zhí)行某一語(yǔ)句,這些語(yǔ)句權(quán)限表權(quán)限描述CREATEDATEBASE創(chuàng)建數(shù)據(jù)庫(kù)CREATETABLE創(chuàng)建表CREATEVIEW創(chuàng)建視圖CREATEPROCEDURE創(chuàng)建存儲(chǔ)過(guò)程CREATERULE創(chuàng)建規(guī)則CREATEDEFAULT創(chuàng)建默認(rèn)BACKUPDATABASE備份數(shù)據(jù)庫(kù)BACKUPLOG備份事務(wù)日志59語(yǔ)句權(quán)限表權(quán)限描述CREATEDATEBASE創(chuàng)建數(shù)據(jù)4.5.2權(quán)限管理操作:授予收回拒絕訪問(wèn)604.5.2權(quán)限管理操作:授予60(二)權(quán)限管理的操作方法利用“對(duì)象資源管理器”使用T-SQL命令語(yǔ)句61(二)權(quán)限管理的操作方法利用“對(duì)象資源管理器”611、利用“對(duì)象資源管理器”----以給“U1”用戶授予StuInfo表的SELECT、UPDATE或REFERENCE權(quán)限為例。
步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】【用戶數(shù)據(jù)庫(kù)】(如TeachingData)【安全性】【用戶】,列出當(dāng)前數(shù)據(jù)庫(kù)的所有用戶。步驟2:右擊要設(shè)置權(quán)限的用戶帳號(hào),在彈出的快捷菜單中選擇【屬性】選項(xiàng),打開(kāi)【數(shù)據(jù)庫(kù)用戶】對(duì)話框。步驟3:在上述對(duì)話框的【選擇頁(yè)】中單擊【安全對(duì)象】。步驟4:?jiǎn)螕簟咎砑印堪粹o,打開(kāi)【添加對(duì)象】對(duì)話框。在對(duì)話框中選取“特定對(duì)象”單選按鈕。621、利用“對(duì)象資源管理器”----以給“U1”用戶授予Stu步驟5:?jiǎn)螕簟敬_定】按鈕,打開(kāi)【選擇對(duì)象】對(duì)話框。單擊【對(duì)象類型】按鈕選擇操作的對(duì)象類型“表”,單擊【瀏覽】按鈕選擇操作對(duì)象的名稱“StuInfo”。
63步驟5:?jiǎn)螕簟敬_定】按鈕,打開(kāi)【選擇對(duì)象】對(duì)話框。單擊【對(duì)象步驟6:?jiǎn)螕簟敬_定】按鈕后,返回到【數(shù)據(jù)庫(kù)用戶-安全對(duì)象】對(duì)話框,在該對(duì)話框的“授予”列中選取SELECT、UPDATE或REFERENCE權(quán)限,64步驟6:?jiǎn)螕簟敬_定】按鈕后,返回到【數(shù)據(jù)庫(kù)用戶-安全對(duì)象】對(duì)6565注意:如果只允許用戶查詢StuInfo表的SID和Sname兩列,可以單擊上圖所示對(duì)話框底部的【列權(quán)限】按鈕,可以進(jìn)一步設(shè)置用戶對(duì)其中的哪些列具有操作權(quán)限。
66注意:662、使用T-SQL命令語(yǔ)句進(jìn)行權(quán)限管理GRANT語(yǔ)句REVOKE語(yǔ)句DENY語(yǔ)句672、使用T-SQL命令語(yǔ)句進(jìn)行權(quán)限管理GRANT語(yǔ)句67(1)GRANT語(yǔ)句GRANT{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table_name|view_name}}|ON{table_name|view_name}[(column[,...n])]TOsecurity_account[,...n][WITHGRANTOPTION]68(1)GRANT語(yǔ)句GRANT68參數(shù)說(shuō)明:ALL:表示具有所有的語(yǔ)句權(quán)限或所有的對(duì)象權(quán)限;permission:是指相應(yīng)對(duì)象的有效權(quán)限的組合;column:指定表、視圖中要授予對(duì)其權(quán)限的列名稱,且只能授予對(duì)列的SELECT、REFERENCES及UPDATE權(quán)限。列名需要使用括號(hào)()括起來(lái)。security_account:表示被授權(quán)的一個(gè)或多個(gè)用戶帳號(hào);WITHGRANTOPTION:表示獲得某種權(quán)限的用戶還可以將此權(quán)限再授予其他用戶;若無(wú)此短語(yǔ),表示該用戶只能使用被授予的權(quán)限,不能傳播權(quán)限。69參數(shù)說(shuō)明:ALL:表示具有所有的語(yǔ)句權(quán)限或所有的對(duì)象權(quán)限;例10將StuInfo表的查詢權(quán)限授予用戶user_stu。GRANTSELECTONStuInfoTOuser_stu說(shuō)明:執(zhí)行此操作后,stu_admin登錄SQLServer后,可以對(duì)StuInfo表進(jìn)行SELECT的操作,但它不能將此權(quán)限授予其他用戶。70例10將StuInfo表的查詢權(quán)限授予用戶user_stu例11將表ScoreInfo的查詢權(quán)授予全體用戶。GRANTSELECTONScoreInfoTOPUBLIC執(zhí)行此操作后,每個(gè)用戶登錄SQLServer后都可以對(duì)ScoreInfo表進(jìn)行SELECT操作。71例11將表ScoreInfo的查詢權(quán)授予全體用戶。71例12將表StuInfo的插入權(quán)和修改sname的權(quán)限授予用戶U2。GRANTSELECT,UPDATE(Sname)ONStuInfoTOU272例12將表StuInfo的插入權(quán)和修改sname的權(quán)限授予用例13將表TchInfo的查詢權(quán)授予用戶U3,并允許它將此權(quán)限再授予其他用戶。GRANTSELECTONTchInfoTOU3WITHGRANTOPTION執(zhí)行此操作后,U3用戶登錄SQLServer后不僅可以對(duì)TchInfo表可以進(jìn)行SELECT操作,同時(shí)還可以使用GRANT語(yǔ)句給其他用戶授權(quán)。73例13將表TchInfo的查詢權(quán)授予用戶U3,并允許它將此權(quán)(2)REVOKE語(yǔ)句REVOKE[GRANTOPTIONFOR]{[ALL[PRIVILEGES]]|permission[(column[,...n])][,...n]}{TO|FROM}security_account[,...n][CASCADE]參數(shù)說(shuō)明:GRANTOPTIONFOR:指示將撤消授予指定權(quán)限的能力。CASCADE:指示當(dāng)前正在撤消的權(quán)限也將從其他被該主體授權(quán)的主體中撤消。74(2)REVOKE語(yǔ)句REVOKE[GRANTOPTI例14撤銷用戶U2在StuInfo表上sname的修改權(quán)。REVOKEUPDATE(Sname)ONStuInfoFROMU275例14撤銷用戶U2在StuInfo表上sname的修改權(quán)。7例15撤銷用戶U3對(duì)TchInfo表的查詢權(quán)限。REVOKESELECTONTchInfoFROMU3CASCADE教材P219例9-12----例9-14由于前面操作中U3在獲得了對(duì)TchInfo表的SELECT權(quán)限后,又將該操作權(quán)授予了U4,U4又授予了U5。在執(zhí)行上例的REVOKE語(yǔ)句后,將U3用戶對(duì)TchInfo表的SELECT權(quán)限收回的同時(shí),采用級(jí)聯(lián)收回的方式自動(dòng)收回U4和U5對(duì)TchInfo表的SELECT權(quán)限。如果省略CASCADE,系統(tǒng)將拒絕執(zhí)行該命令。76例15撤銷用戶U3對(duì)TchInfo表的查詢權(quán)限。76注意:如果用戶U4和U5還從其他用戶那里獲得了對(duì)TchInfo表的SELECT權(quán)限,執(zhí)行上例的REVOKE語(yǔ)句后,系統(tǒng)只收回直接或間接從U3處獲得的權(quán)限,并沒(méi)有收回從其他用戶處獲得的權(quán)限,因此他們?nèi)跃哂写藱?quán)限。77注意:如果用戶U4和U5還從其他用戶那里獲得了對(duì)TchInf(3)DENY語(yǔ)句使用DENY語(yǔ)句可以拒絕對(duì)授予用戶或角色的權(quán)限,防止用戶通過(guò)其組或角色成員身份繼承權(quán)限。其語(yǔ)法格式為:DENY{[ALL[PRIVILEGES]]|permission[(column[,...n])][,...n]}TOsecurity_account[,...n]
[CASCADE]
78(3)DENY語(yǔ)句使用DENY語(yǔ)句可以拒絕對(duì)授予用戶或角色的例16拒絕用戶user_stu擁有ScoreInfo表的查詢權(quán)限。DENYSELECTONScoreInfoTOuser_stu執(zhí)行此操作后,user_stu用戶登錄SQLServer不能對(duì)ScoreInfo表進(jìn)行SELECT操作,即使該用戶被明確授予或繼承得到對(duì)ScoreInfo表進(jìn)行SELECT權(quán)限,仍然不允許執(zhí)行相應(yīng)的操作。79例16拒絕用戶user_stu擁有ScoreInfo表的查詢五、角色管理在數(shù)據(jù)庫(kù)中,為了簡(jiǎn)化對(duì)用戶操作權(quán)限的管理,可以將具有相同權(quán)限的一組用戶組織在一起,形成數(shù)據(jù)庫(kù)中的角色(Role)。對(duì)一個(gè)角色授予、撤銷和拒絕的權(quán)限也適用于該角色的任何成員。使用角色來(lái)管理數(shù)據(jù)庫(kù)權(quán)限可以簡(jiǎn)化授權(quán)過(guò)程。80五、角色管理在數(shù)據(jù)庫(kù)中,為了簡(jiǎn)化對(duì)用戶操作權(quán)限的管理,可以將角色角色系統(tǒng)預(yù)定義的固定角色用戶自定義角色。81角色角色81(一)系統(tǒng)預(yù)定義角色固定服務(wù)器角色固定數(shù)據(jù)庫(kù)角色82(一)系統(tǒng)預(yù)定義角色固定服務(wù)器角色821、固定服務(wù)器角色服務(wù)器角色是負(fù)責(zé)管理和維護(hù)SQLServer的組,一般只是設(shè)置需要管理服務(wù)器的登錄帳號(hào)屬于服務(wù)器角色。831、固定服務(wù)器角色服務(wù)器角色是負(fù)責(zé)管理和維護(hù)SQLServ固定服務(wù)器角色及權(quán)限描述固定服務(wù)器角色權(quán)限sysadmin該角色可以在服務(wù)器中執(zhí)行任何操作。WindowsBUILTIN\Adnimistrators組的所有成員都是sysadmin角色的成員。securityadmin管理服務(wù)器登錄帳戶和創(chuàng)建數(shù)據(jù)庫(kù)的權(quán)限。serveradmin能夠配置服務(wù)器的設(shè)置選項(xiàng),關(guān)閉服務(wù)器setupadmin能執(zhí)行某些系統(tǒng)存儲(chǔ)過(guò)程,以及管理鏈接服務(wù)器processadmin管理SQLServer實(shí)例中運(yùn)行的進(jìn)程diskadmin管理磁盤文件dbcreator創(chuàng)建、修改和刪除數(shù)據(jù)庫(kù)bulkadmin執(zhí)行大容量數(shù)據(jù)的插入操作84固定服務(wù)器角色及權(quán)限描述固定服務(wù)器角色權(quán)限sysadmi利用對(duì)象資源管理器將登錄帳號(hào)tch_admin添加到固定服務(wù)器角色dbcreate中
步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【安全性】【服務(wù)器角色】,顯示預(yù)定義的固定服務(wù)器角色。步驟2:右擊添加登錄帳號(hào)的服務(wù)器角色dbcreate,在彈出的快捷菜單中選擇【屬性】選項(xiàng),打開(kāi)【服務(wù)器角色屬性】對(duì)話框。步驟3:?jiǎn)螕簟咎砑印堪粹o,出現(xiàn)【添加成員】對(duì)話框。在該對(duì)話框中選擇相應(yīng)的登錄帳號(hào)tch_admin。單擊【確定】按鈕即可選定的登錄添加到服務(wù)器角色中。85利用對(duì)象資源管理器將登錄帳號(hào)tch_admin添加到固定服務(wù)利用T-SQL語(yǔ)句為登錄帳號(hào)指定和刪除服務(wù)器角色格式sp_addsrvrolemember{login_name},role_name參數(shù)說(shuō)明:login_name:指定添加到服務(wù)器角色中的登錄帳號(hào)。role_name:指定服務(wù)器角色的名稱。SQLServer還提供了系統(tǒng)存儲(chǔ)過(guò)程sp_dropsrvrolemember為服務(wù)器角色刪除登錄帳戶,其語(yǔ)法格式為:sp_dropsrvrolemember{'login_name
'},'role_name
'86利用T-SQL語(yǔ)句為登錄帳號(hào)指定和刪除服務(wù)器角色格式86例17為登錄帳號(hào)tch_admin添加到固定服務(wù)器角色sysadmin中。sp_addsrvrolemembertch_admin,sysadmin87例17為登錄帳號(hào)tch_admin添加到固定服務(wù)器角色sys2.固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色是數(shù)據(jù)庫(kù)級(jí)別上的一些預(yù)定義的角色。在創(chuàng)建每個(gè)數(shù)據(jù)庫(kù)時(shí),都會(huì)自動(dòng)添加這些角色到新創(chuàng)建的數(shù)據(jù)庫(kù)中,每個(gè)角色對(duì)應(yīng)著相應(yīng)的權(quán)限。固定的數(shù)據(jù)庫(kù)角色為管理數(shù)據(jù)庫(kù)一級(jí)的權(quán)限提供了方便,它的成員是來(lái)自每個(gè)數(shù)據(jù)庫(kù)的用戶。用戶不能被添加、更改和刪除固定數(shù)據(jù)庫(kù)角色,但是可以將用戶帳號(hào)添加到固定的數(shù)據(jù)庫(kù)角色中。882.固定數(shù)據(jù)庫(kù)角色固定數(shù)據(jù)庫(kù)角色是數(shù)據(jù)庫(kù)級(jí)別上的一些預(yù)定義(1)固定數(shù)據(jù)庫(kù)角色與權(quán)限固定的數(shù)據(jù)庫(kù)角色權(quán)限db_accessadmin添加或刪除Windows用戶、組和SQLServer登錄的訪問(wèn)權(quán)限db_backupoperator可以進(jìn)行數(shù)據(jù)庫(kù)的備份和恢復(fù)操作db_datareader可以查詢所有用戶表中的所有數(shù)據(jù)db_datawriter可以添加、刪除和更改所有用戶表中的數(shù)據(jù)db_ddladmin在數(shù)據(jù)庫(kù)中運(yùn)行所有數(shù)據(jù)定義語(yǔ)句(DDL),可以建立、刪除和修改數(shù)據(jù)庫(kù)對(duì)象db_denydatareader禁止查詢數(shù)據(jù)庫(kù)的所有用戶表中的任何數(shù)據(jù)db_denydatawriter禁止添加、刪除和更改所有用戶表中的數(shù)據(jù)db_owner在數(shù)據(jù)庫(kù)中擁有全部權(quán)限db_securityadmin可以管理數(shù)據(jù)庫(kù)角色和角色成員,并管理權(quán)限public默認(rèn)不具有任何權(quán)限,但用戶可以對(duì)此角色授權(quán)89(1)固定數(shù)據(jù)庫(kù)角色與權(quán)限固定的數(shù)據(jù)庫(kù)角色權(quán)限db_public角色public角色是一個(gè)特殊的數(shù)據(jù)庫(kù)角色,每個(gè)數(shù)據(jù)庫(kù)的用戶都自動(dòng)是public數(shù)據(jù)庫(kù)角色的成員。用戶無(wú)法在public角色中添加和刪除成員,但是用戶可以對(duì)這個(gè)角色進(jìn)行授權(quán),而其他的固定數(shù)據(jù)庫(kù)角色的權(quán)限是固定的,用戶不可改變。如果想讓數(shù)據(jù)庫(kù)的所有用戶都具有某個(gè)權(quán)限,則可以將該權(quán)限授予public。同時(shí),如果沒(méi)有給用戶專門授予某個(gè)對(duì)象的權(quán)限,他們就只能使用授public角色的權(quán)限。90public角色public角色是一個(gè)特殊的數(shù)據(jù)庫(kù)角色,每個(gè)(2)為固定數(shù)據(jù)庫(kù)角色添加用戶帳號(hào)對(duì)象資源管理器T-SQL命令91(2)為固定數(shù)據(jù)庫(kù)角色添加用戶帳號(hào)對(duì)象資源管理器91利用對(duì)象資源管理器為固定數(shù)據(jù)庫(kù)角色db_owner添加用戶帳號(hào)U1步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】用戶數(shù)據(jù)庫(kù)TeachingData【安全性】【角色】【數(shù)據(jù)庫(kù)角色】,這時(shí)可以看到10個(gè)默認(rèn)的數(shù)據(jù)庫(kù)角色。步驟2:右擊添加用戶帳號(hào)的數(shù)據(jù)庫(kù)角色db_owner,在彈出的快捷菜單中選擇【屬性】選項(xiàng),打開(kāi)【數(shù)據(jù)庫(kù)角色屬性】對(duì)話框,顯示db_owner角色擁有的框架和成員。步驟3:?jiǎn)螕簟咎砑印堪粹o,出現(xiàn)【選擇數(shù)據(jù)庫(kù)用戶或角色】對(duì)話框,在此選擇用戶U1并單擊【確定】按鈕返回。步驟4:在完成用戶帳號(hào)的添加后,單擊【確定】按鈕即可將所選用戶帳號(hào)添加到db_owner數(shù)據(jù)庫(kù)角色中。92利用對(duì)象資源管理器為固定數(shù)據(jù)庫(kù)角色db_owner添加用戶帳利用T-SQL語(yǔ)句為數(shù)據(jù)庫(kù)角色添加用戶帳號(hào)語(yǔ)法格式為:sp_addrolemember'role','security_account'
參數(shù)說(shuō)明:role:當(dāng)前數(shù)據(jù)庫(kù)中的數(shù)據(jù)庫(kù)角色的名稱。role數(shù)據(jù)類型為sysname,無(wú)默認(rèn)值。security_account:是添加到該角色的安全用戶帳戶。security_account可以是數(shù)據(jù)庫(kù)用戶、數(shù)據(jù)庫(kù)角色、Windows登錄或Windows組。93利用T-SQL語(yǔ)句為數(shù)據(jù)庫(kù)角色添加用戶帳號(hào)語(yǔ)法格式為:93例18為數(shù)據(jù)庫(kù)角色db_accessadmin添加用戶帳號(hào)U1.sp_addrolemember'db_accessadmin','U1'94例18為數(shù)據(jù)庫(kù)角色db_accessadmin添加用戶帳號(hào)U(二)用戶自定義角色
當(dāng)為一組數(shù)據(jù)庫(kù)用戶在SQLServer中設(shè)置相同的一組權(quán)限時(shí),但這些權(quán)限的集合不等同于固定數(shù)據(jù)庫(kù)角色所具有的權(quán)限時(shí),可以通過(guò)用戶自定義角色來(lái)滿足這一要求,輕松地管理數(shù)據(jù)庫(kù)中的權(quán)限。95(二)用戶自定義角色當(dāng)為一組數(shù)據(jù)庫(kù)用戶在SQLServe1、創(chuàng)建用戶自定義角色使用對(duì)象資源管理器創(chuàng)建使用T-SQL語(yǔ)句創(chuàng)建961、創(chuàng)建用戶自定義角色使用對(duì)象資源管理器創(chuàng)建96(1)使用對(duì)象資源管理器創(chuàng)建用戶自定義角色步驟1:?jiǎn)?dòng)“SQLServerManagementStudio”管理器,在對(duì)象資源管理器中,逐級(jí)展開(kāi)【服務(wù)器】【數(shù)據(jù)庫(kù)】【TeachingData】【安全性】【角色】;步驟2:右擊“角色”項(xiàng),在彈出的快捷菜單中選擇【新建角色】命令.步驟3:?jiǎn)螕魧?duì)話框的【常規(guī)】標(biāo)簽,在【角色名稱】對(duì)應(yīng)的文本框中輸入創(chuàng)建的數(shù)據(jù)庫(kù)角色的名稱R1;在“此角色擁有的架構(gòu)”列表框中也可以選擇當(dāng)前新創(chuàng)建的角色要添加到哪個(gè)固定數(shù)據(jù)庫(kù)角色。步驟4:?jiǎn)螕魧?duì)話框底部的【添加】按鈕,直接為此角色添加成員用戶帳號(hào)U1,返回【數(shù)據(jù)庫(kù)角色】對(duì)話框后,單擊【確定】按鈕即可;也可以不添加成員,直接單擊【確定】按鈕完成角色的創(chuàng)建,此時(shí)創(chuàng)建的角色時(shí)無(wú)成員的,可以在以后的應(yīng)用中添加。97(1)使用對(duì)象資源管理器創(chuàng)建用戶自定義角色步驟1:?jiǎn)?dòng)“S9898(2)使用T-SQL語(yǔ)句創(chuàng)建用戶自定義角色語(yǔ)法格式:sp_addrole'role',['owner']參數(shù)說(shuō)明:role:要?jiǎng)?chuàng)建的數(shù)據(jù)庫(kù)角色的名稱。owner:數(shù)據(jù)庫(kù)角色的擁有者,默認(rèn)值為dbo。99(2)使用T-SQL語(yǔ)句創(chuàng)建用戶自定義角色語(yǔ)法格式:99例19,在TeachingData數(shù)據(jù)庫(kù)中創(chuàng)建新的數(shù)據(jù)庫(kù)角色Teacher。sp_addroleTeacher100例19,在TeachingData數(shù)據(jù)庫(kù)中創(chuàng)建新的數(shù)據(jù)庫(kù)角色3、為用戶定義的角色授權(quán)步驟1:在對(duì)象資源管理器中,右擊要授權(quán)的用戶自定義角色的名稱,在彈出的快捷菜單中選擇【屬性】選項(xiàng);步驟2:在出現(xiàn)的對(duì)話框中選擇【安全對(duì)象】標(biāo)簽,在此界面下即可實(shí)現(xiàn)對(duì)角色的授權(quán)。1013、為用戶定義的角色授權(quán)步驟1:在對(duì)象資源管理器中,右擊要授4.為用戶自定義角色添加/刪除成員步驟1:?jiǎn)?dòng)“SQLServerManagementStudio”管理器,在對(duì)象資源管理器中,逐級(jí)展開(kāi)【服務(wù)器】【數(shù)據(jù)庫(kù)】【TeachingData】【安全性】【角色】【數(shù)據(jù)角色】;步驟2:右擊要添加成員的用戶自定義角色名,在彈出的快捷菜單中選擇【屬性】選項(xiàng),在打開(kāi)對(duì)話框中,單擊【常規(guī)】標(biāo)簽界面底部的【添加】按鈕,打開(kāi)【選擇數(shù)據(jù)庫(kù)用戶或角色】對(duì)話框;步驟3:在對(duì)話框中單擊【瀏覽】按鈕,打開(kāi)【查找對(duì)象】對(duì)話框,步驟4:在對(duì)話框中,單擊用戶名左側(cè)的復(fù)選框來(lái)確定添加和刪除的用戶。最后單擊【確定】按鈕完成操作。1024.為用戶自定義角色添加/刪除成員步驟1:?jiǎn)?dòng)“SQLSe使用系統(tǒng)存儲(chǔ)過(guò)程來(lái)添加刪除成員與為固定數(shù)據(jù)庫(kù)角色添加刪除成員相同.
103使用系統(tǒng)存儲(chǔ)過(guò)程來(lái)添加刪除成員與為固定數(shù)據(jù)庫(kù)角色添加刪除成員小結(jié)一、安全機(jī)制安全模型(用戶、存取控制、操作系統(tǒng)安全保護(hù)、加密存儲(chǔ))操作權(quán)限(系統(tǒng)管理員、對(duì)象擁有者、普通用戶)二、SQLServer認(rèn)證模式Windows身份驗(yàn)證模式混合驗(yàn)證模式。104小結(jié)一、安全機(jī)制104三、登錄帳號(hào)和用戶帳號(hào)的管理創(chuàng)建、修改、刪除四、權(quán)限管理對(duì)象權(quán)限語(yǔ)句權(quán)限權(quán)限管理命令(GRANT、REVOKE、DENY)五、角色管理固定服務(wù)器角色(sp_addsrvrolemember,sp_dropsrvrolemember)固定數(shù)據(jù)庫(kù)角色 (sp_addrolemember,sp_droprolemember)用戶自定義角色(sp_addrole,sp_droprole)105三、登錄帳號(hào)和用戶帳號(hào)的管理105習(xí)題完成PPT中的實(shí)驗(yàn)106習(xí)題完成PPT中的實(shí)驗(yàn)106第9章數(shù)據(jù)庫(kù)的安全性主講教師毛一梅2010.01107第9章數(shù)據(jù)庫(kù)的安全性主講教師毛一梅1問(wèn)題的提出數(shù)據(jù)庫(kù)的一大特點(diǎn)是數(shù)據(jù)可以共享數(shù)據(jù)共享必然帶來(lái)數(shù)據(jù)庫(kù)的安全性問(wèn)題數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)共享不能是無(wú)條件的共享例:軍事秘密、國(guó)家機(jī)密、新產(chǎn)品實(shí)驗(yàn)數(shù)據(jù)、市場(chǎng)需求分析、市場(chǎng)營(yíng)銷策略、銷售計(jì)劃、客戶檔案、醫(yī)療檔案、銀行儲(chǔ)蓄數(shù)據(jù)數(shù)據(jù)庫(kù)安全性108問(wèn)題的提出數(shù)據(jù)庫(kù)的一大特點(diǎn)是數(shù)據(jù)可以共享數(shù)據(jù)庫(kù)安全性2一、計(jì)算機(jī)安全性機(jī)制數(shù)據(jù)安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止非法使用造成的數(shù)據(jù)泄露、更改或破壞。安全性問(wèn)題不是數(shù)據(jù)庫(kù)系統(tǒng)所獨(dú)有的,所有計(jì)算機(jī)系統(tǒng)都有這個(gè)問(wèn)題。只是在數(shù)據(jù)庫(kù)系統(tǒng)中大量數(shù)據(jù)集中存放,且為許多最終用戶直接共享,因而其安全性問(wèn)題尤為突出。109一、計(jì)算機(jī)安全性機(jī)制數(shù)據(jù)安全性是指保護(hù)數(shù)據(jù)庫(kù)以防止非法使用造計(jì)算機(jī)系統(tǒng)中,安全措施是一級(jí)一級(jí)層層設(shè)置
計(jì)算機(jī)系統(tǒng)的安全模型
110計(jì)算機(jī)系統(tǒng)中,安全措施是一級(jí)一級(jí)層層設(shè)置 計(jì)算機(jī)系統(tǒng)的安全在安全模型中,用戶標(biāo)識(shí)與鑒定是系統(tǒng)提供的最外層安全保護(hù)措施。只有在DBMS成功注冊(cè)了的人員才是該數(shù)據(jù)庫(kù)的用戶,才可以訪問(wèn)數(shù)據(jù)庫(kù)。用戶標(biāo)識(shí)與鑒定解決了檢查用戶是否合法的問(wèn)題,但是合法用戶的存取權(quán)限不盡相同。數(shù)據(jù)安全性的核心問(wèn)題是DBMS的存取控制機(jī)制,確保進(jìn)入系統(tǒng)的用戶只能進(jìn)行合法的操作。111在安全模型中,用戶標(biāo)識(shí)與鑒定是系統(tǒng)提供的最外層安全保護(hù)措施。數(shù)據(jù)庫(kù)中的用戶按其操作權(quán)限可分為三類:數(shù)據(jù)庫(kù)系統(tǒng)管理員:在數(shù)據(jù)庫(kù)中具有全部的權(quán)限,當(dāng)用戶以系統(tǒng)管理員身份登錄進(jìn)行操作時(shí),系統(tǒng)不對(duì)其權(quán)限進(jìn)行檢查。數(shù)據(jù)庫(kù)對(duì)象擁有者:創(chuàng)建數(shù)據(jù)庫(kù)對(duì)象的用戶即為數(shù)據(jù)庫(kù)對(duì)象的擁有者。數(shù)據(jù)庫(kù)對(duì)象擁有者對(duì)其所擁有的對(duì)象具有一切權(quán)限。普通用戶:只具有授予用戶的對(duì)數(shù)據(jù)庫(kù)中數(shù)據(jù)的增加、刪除、更改和查詢的權(quán)限。操作系統(tǒng)一級(jí)也有自己的保護(hù)措施。數(shù)據(jù)最后還可以以加密的形式存儲(chǔ)到數(shù)據(jù)庫(kù)中。112數(shù)據(jù)庫(kù)中的用戶按其操作權(quán)限可分為三類:數(shù)據(jù)庫(kù)系統(tǒng)管理員:在數(shù)二、SQLServer2005的安全策略SQLServer2005提供的安全策略可以劃分為以下4個(gè)等級(jí):客戶機(jī)操作系統(tǒng)的安全性SQLServer的登錄安全性數(shù)據(jù)庫(kù)的安全性數(shù)據(jù)庫(kù)對(duì)象的安全性113二、SQLServer2005的安全策略SQLSerSQLServer認(rèn)證模式如果用戶要訪問(wèn)SQLServer時(shí),需要經(jīng)過(guò)兩個(gè)認(rèn)證過(guò)程:一是身份驗(yàn)證,只驗(yàn)證用戶是否有連接到SQLServer數(shù)據(jù)庫(kù)服務(wù)器的資格;二是權(quán)限驗(yàn)證,檢驗(yàn)用戶是否有對(duì)指定數(shù)據(jù)庫(kù)的訪問(wèn)權(quán),并且當(dāng)用戶操作數(shù)據(jù)庫(kù)中的數(shù)據(jù)或?qū)ο髸r(shí)驗(yàn)證用戶是否有相應(yīng)的操作權(quán)限。114SQLServer認(rèn)證模式如果用戶要訪問(wèn)SQLServe兩種驗(yàn)證模式:在驗(yàn)證階段,系統(tǒng)對(duì)登錄用戶進(jìn)行驗(yàn)證。SQLServer和Windows是結(jié)合在一起的,因此,產(chǎn)生了兩種驗(yàn)證模式:Windows身份驗(yàn)證模式和混合驗(yàn)證模式。115兩種驗(yàn)證模式:在驗(yàn)證階段,系統(tǒng)對(duì)登錄用戶進(jìn)行驗(yàn)證。9Windows身份驗(yàn)證模式在Windows身份驗(yàn)證模式下,用戶必須首先登錄到Windows中,然后再登錄到SQLServer。而且用戶登錄到SQLServer時(shí),只需選擇Windows身份驗(yàn)證模式,而無(wú)需再提供登錄帳號(hào)和密碼,系統(tǒng)會(huì)從用戶登錄到Windows時(shí)提供的用戶名和密碼中查找當(dāng)前用戶的登錄信息,以判斷該用戶是否是SQLServer的合法用戶。116Windows身份驗(yàn)證模式在Windows身份驗(yàn)證模式下,用注意:①如果用戶在登錄SQLServer時(shí)未給出用戶登錄名,則SQLServer將使用Windows驗(yàn)證模式。②如果SQLServer被設(shè)置為Windows驗(yàn)證模式,則用戶在登錄時(shí)即使輸入一個(gè)具體的登錄名時(shí),SQLServer也將忽略該登錄名。117注意:①如果用戶在登錄SQLServer時(shí)未給出用戶登錄名混合驗(yàn)證模式?;旌向?yàn)證模式表示SQLServer接受Windows授權(quán)用戶和SQLServer授權(quán)用戶。在該認(rèn)證模式下,用戶在連接SQLServer時(shí)必須提供登錄名和密碼,然后系統(tǒng)確定用戶帳號(hào)在Winwods操作系統(tǒng)下是否可信,對(duì)于可信連接用戶,系統(tǒng)直接采用Windows身份驗(yàn)證機(jī)制,否則采用SQLServer驗(yàn)證機(jī)制。SQLServer驗(yàn)證機(jī)制是系統(tǒng)自己執(zhí)行驗(yàn)證處理,它通過(guò)與系統(tǒng)表syslogins中信息比較,檢查輸入的登錄帳號(hào)是否已存在且密碼是否正確。如果匹配,則表明登錄成功,否則身份驗(yàn)證失敗,用戶將收到錯(cuò)誤信息。118混合驗(yàn)證模式?;旌向?yàn)證模式表示SQLServer接受Win注意Windows操作系統(tǒng)的用戶既可以使用Windows認(rèn)證,也可以使用SQLServer驗(yàn)證。若不是Windows操作系統(tǒng)的用戶只能使用SQLServer驗(yàn)證。119注意Windows操作系統(tǒng)的用戶既可以使用Windows認(rèn)證驗(yàn)證模式的設(shè)置
步驟1:打開(kāi)“SQLServerManagementStudio”集成環(huán)境,在“對(duì)象資源管理器”窗口中用鼠標(biāo)右擊服務(wù)器,在彈出的快捷菜單中選擇【屬性】選項(xiàng),打開(kāi)【服務(wù)器屬性】對(duì)話框;步驟2:在【服務(wù)器屬性】對(duì)話框中,選擇【安全性】選項(xiàng)。120驗(yàn)證模式的設(shè)置步驟1:打開(kāi)“SQLServerMana12115三、登錄帳號(hào)和用戶帳號(hào)的管理登錄服務(wù)器的登錄帳號(hào),也稱登錄名;操作數(shù)據(jù)庫(kù)的用戶帳號(hào)。登錄帳號(hào)是指能登錄到SQLServer服務(wù)器的帳號(hào),屬于服務(wù)器的層面,本身并不能讓用戶訪問(wèn)服務(wù)器中的數(shù)據(jù)庫(kù)。如果登錄服務(wù)器的用戶要訪問(wèn)數(shù)據(jù)庫(kù)時(shí)必須擁有用戶帳號(hào)。122三、登錄帳號(hào)和用戶帳號(hào)的管理登錄服務(wù)器的登錄帳號(hào),也稱登錄名在安裝SQLServer后,系統(tǒng)默認(rèn)創(chuàng)建兩個(gè)登錄帳號(hào),即sa帳號(hào)和服務(wù)器帳號(hào)。其中sa是超級(jí)管理員帳號(hào),允許SQLServer的系統(tǒng)管理員登錄。盡管如此,在實(shí)際的使用過(guò)程中還需要用戶根據(jù)應(yīng)用需要對(duì)登錄帳戶進(jìn)行必要的管理。123在安裝SQLServer后,系統(tǒng)默認(rèn)創(chuàng)建兩個(gè)登錄帳號(hào),即s1、創(chuàng)建登錄帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)(2)利用T-SQL語(yǔ)句創(chuàng)建登錄帳號(hào)1241、創(chuàng)建登錄帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)在“對(duì)象資源管理器”中,逐級(jí)展開(kāi)“服務(wù)器”【安全性】【登錄名】,右擊【登錄名】選擇新建登錄名125(1)利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)在“對(duì)象資源管理器例1, 利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)tch_admin,密碼為myteacher,默認(rèn)數(shù)據(jù)庫(kù)為teachingData步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”集成環(huán)境,在“對(duì)象資源管理器”中,逐級(jí)展開(kāi)“服務(wù)器”【安全性】【登錄名】選項(xiàng);步驟2:右擊【登錄…】選項(xiàng),在彈出的快捷菜單中選擇【新建登錄名】選項(xiàng),打開(kāi)【登錄名—新建】對(duì)話框。126例1, 利用“對(duì)象資源管理器”創(chuàng)建登錄帳號(hào)tch_admin12721步驟3:在【登錄名】右側(cè)的文本框中輸入要?jiǎng)?chuàng)建的登錄帳號(hào)(如stu_admin),若選擇“Windows身份驗(yàn)證”,可以通過(guò)單擊右側(cè)的【搜索】按鈕來(lái)查找并添加Windows操作系統(tǒng)中的用戶名稱;若選擇“SQLServer身份驗(yàn)證”,則需在【密碼】和【確認(rèn)密碼】文本框中輸入登錄時(shí)采用的密碼。步驟4:在【默認(rèn)數(shù)據(jù)庫(kù)】下拉列表中選擇該登錄帳號(hào)對(duì)應(yīng)的默認(rèn)使用的數(shù)據(jù)庫(kù),選擇“TeachingData”;在【默認(rèn)語(yǔ)言】下拉列表中選擇登錄后使用的默認(rèn)語(yǔ)言,一般采用默認(rèn)值。然后,單擊【確定】按鈕即可新建一個(gè)登錄帳號(hào)。128步驟3:在【登錄名】右側(cè)的文本框中輸入要?jiǎng)?chuàng)建的登錄帳號(hào)(如s(2)利用T-SQL語(yǔ)句創(chuàng)建登錄帳號(hào)CREATELOGINlogin_name
{WITH<PASSWORD='password',[<SID=sid
|DEFAULT_DATABASE=database
|DEFAULT_LANGUAGE=language>[,…]]>|FROM<WINDOWS[WITH<DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language>[,…]>}129(2)利用T-SQL語(yǔ)句創(chuàng)建登錄帳號(hào)CREATELOGI參數(shù)說(shuō)明login_name:指定創(chuàng)建的登錄帳號(hào)。如果從Windows域帳戶映射login_name,則login_name必須用方括號(hào)[]括起來(lái)。password:僅適用于SQLServer登錄帳號(hào),指定正在創(chuàng)建的登錄帳號(hào)的密碼。sid:僅適用于SQLServer登錄帳號(hào)。指定新SQLServer登錄帳號(hào)的GUID。如果未選擇此選項(xiàng),則SQLServer將自動(dòng)指派GUID。database:指定將指派給登錄帳號(hào)的默認(rèn)數(shù)據(jù)庫(kù),若此項(xiàng)缺省,默認(rèn)數(shù)據(jù)庫(kù)將設(shè)置為master。language:指定將指派給登錄帳號(hào)的默認(rèn)語(yǔ)言。若此選項(xiàng)缺省,則默認(rèn)語(yǔ)言將設(shè)置為服務(wù)器的當(dāng)前默認(rèn)語(yǔ)言。WINDOWS:指定將登錄帳號(hào)映射到Windows登錄名。130參數(shù)說(shuō)明login_name:指定創(chuàng)建的登錄帳號(hào)。如果從Wi例2,在SQLServer服務(wù)器上,創(chuàng)建stu_admin登錄帳號(hào),密碼為123的,默認(rèn)數(shù)據(jù)庫(kù)為teachingData。CREATELOGINstu_adminWITHPASSWORD='123',DEFAULT_DATABASE=TeachingData131例2,在SQLServer服務(wù)器上,創(chuàng)建stu_admin注意雖然SQLServer2005也提供了系統(tǒng)存儲(chǔ)過(guò)程sp_grantlogin和sp_addlogin創(chuàng)建登錄帳號(hào),但由于后續(xù)的SQLServer版本將取消此項(xiàng)功能。因此,應(yīng)避免在新的開(kāi)發(fā)工作中使用該功能。132注意雖然SQLServer2005也提供了系統(tǒng)存儲(chǔ)過(guò)程s2、創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)
(1)利用“對(duì)象資源管理器”創(chuàng)建用戶帳號(hào)(2)利用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)1332、創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)(1)利用“對(duì)象資源管理器”創(chuàng)建(1)利用“對(duì)象資源管理器”創(chuàng)建用戶帳號(hào)在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】“TeachingData”【安全性】【用戶】,右擊【用戶】選擇“新建用戶”命令。134(1)利用“對(duì)象資源管理器”創(chuàng)建用戶帳號(hào)在“對(duì)象資源管理器例3,在“TeachingData”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)stu_admin登錄帳號(hào)下的“U1”用戶,具體操作步驟為:步驟1:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】“TeachingData”【安全性】【用戶】。步驟2:在【用戶】項(xiàng)右擊鼠標(biāo),在彈出的快捷菜單中選擇【新建用戶】選項(xiàng),打開(kāi)【數(shù)據(jù)庫(kù)用戶】對(duì)話框,135例3,在“TeachingData”數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)stu步驟3:在【用戶名】右側(cè)文本框中輸入新建的用戶名U1;在【登錄名】文本框中直接輸入已存在的登錄帳號(hào)stu_admin,或單擊【登錄名】文本框右側(cè)的【…】按鈕,選擇登錄帳號(hào)stu_admin。步驟5:?jiǎn)螕簟敬_定】按鈕即可完成用戶帳號(hào)的創(chuàng)建。136步驟3:在【用戶名】右側(cè)文本框中輸入新建的用戶名U1;在【登13731(2)利用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)向當(dāng)前數(shù)據(jù)庫(kù)添加新的用戶帳號(hào),也可使用CREATEUSER語(yǔ)句來(lái)實(shí)現(xiàn)。其語(yǔ)法格式為:CREATEUSERuser_name[{{FOR|FROM}{LOGINlogin_name}|WITHOUTLOGIN]138(2)利用T-SQL語(yǔ)句創(chuàng)建數(shù)據(jù)庫(kù)的用戶帳號(hào)向當(dāng)前數(shù)據(jù)庫(kù)添加參數(shù)說(shuō)明user_name:指定在此數(shù)據(jù)庫(kù)中用于識(shí)別該用戶的名稱。login_name:指定要?jiǎng)?chuàng)建數(shù)據(jù)庫(kù)用戶帳號(hào)的SQLServer登錄帳號(hào)。login_name必須是服務(wù)器中有效的登錄帳號(hào)。WITHOUTLOGIN:指定不應(yīng)將用戶映射到現(xiàn)有登錄帳號(hào)。139參數(shù)說(shuō)明user_name:指定在此數(shù)據(jù)庫(kù)中用于識(shí)別該用戶例4,在TeachingData數(shù)據(jù)庫(kù)中為登錄帳號(hào)tch_admin創(chuàng)建用戶帳號(hào),并取名為U2。USETeachingData;CREATEUSERU2FORLOGINtch_admin140例4,在TeachingData數(shù)據(jù)庫(kù)中為登錄帳號(hào)tch_a注意:(1)如果省略FORLOGIN,則新的數(shù)據(jù)庫(kù)用戶將被映射到同名的SQLServer登錄名。(2)不能使用CREATEUSER創(chuàng)建guest用戶,因?yàn)槊總€(gè)數(shù)據(jù)庫(kù)中均已存在guest用戶??梢酝ㄟ^(guò)授予guest用戶CONNECT權(quán)限來(lái)啟用該用戶。141注意:(1)如果省略FORLOGIN,則新的數(shù)據(jù)庫(kù)用戶3、管理登錄帳號(hào)和用戶帳號(hào)利用“對(duì)象資源管理器”管理利用T-SQL語(yǔ)句管理1423、管理登錄帳號(hào)和用戶帳號(hào)利用“對(duì)象資源管理器”管理36(1)利用“對(duì)象資源管理器”管理登錄帳戶查看:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【安全性】【登錄名】。修改屬性:在對(duì)象資源管理器中右擊需要修改帳號(hào)屬性的登錄名。刪除:右擊登錄名,選擇【刪除】命令。143(1)利用“對(duì)象資源管理器”管理登錄帳戶查看:?jiǎn)?dòng)“Micr(2)利用“對(duì)象資源管理器”查看和刪除用戶帳號(hào)查看:?jiǎn)?dòng)“MicrosoftSQLServerManagementStudio”管理器,在“對(duì)象資源管理器”窗口逐級(jí)展開(kāi)“服務(wù)器”【數(shù)據(jù)庫(kù)】【用戶數(shù)據(jù)庫(kù)】(如TeachingData)【安全性】【用戶】。即可看到當(dāng)前數(shù)據(jù)庫(kù)的所有用戶帳號(hào)。步驟2:右擊欲刪除的用戶名,在彈出的快捷菜單中選擇【刪除】選項(xiàng),在打開(kāi)的【刪除對(duì)象】對(duì)話框中單擊【確定】按鈕即可。144(2)利用“對(duì)象資源管理器”查看和刪除用戶帳號(hào)查看:?jiǎn)?dòng)“M(3)利用T-SQL語(yǔ)句管理利用T-SQL語(yǔ)句查看服務(wù)器的登錄帳號(hào)使用sp_helplogins系統(tǒng)存儲(chǔ)過(guò)程可以查看指定的登錄帳號(hào)信息和相關(guān)用戶帳號(hào)的信息。其語(yǔ)法格式為:sp_helplogins['login_name']參數(shù)說(shuō)明:login_name:指定要查看的登錄名。login_name的數(shù)據(jù)類型為sysname,默認(rèn)值為NULL。如果指定該參數(shù),則login_name必須存在。如果未指定login,則返回當(dāng)前數(shù)據(jù)庫(kù)的所有登錄帳號(hào)的信息。145(3)利用T-SQL語(yǔ)句管理利用T-SQL語(yǔ)句查看服務(wù)器的說(shuō)明:在該語(yǔ)句的結(jié)果集中將返回兩個(gè)報(bào)告,第一個(gè)報(bào)告包含指定的登錄帳號(hào)信息,第二個(gè)報(bào)告包含與登錄帳號(hào)相關(guān)聯(lián)的用戶帳號(hào)信息。146說(shuō)明:在該語(yǔ)句的結(jié)果集中將返回兩個(gè)報(bào)告,第一個(gè)報(bào)告包含指定的利用T-SQL語(yǔ)句修改服務(wù)器的登錄帳號(hào)格式:ALTERLOGINlogin_name
{ENABLE|DISABLE|WITH<PASSWORD='password'[OLD_PASSWORD='oldpassword']|DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|NAME=login_name>[,...]}147利用T-SQL語(yǔ)句修改服務(wù)器的登錄帳號(hào)格式:41參數(shù)說(shuō)明login_name:指定正在更改的SQLServer登錄帳號(hào)。ENABLE|DISABLE:?jiǎn)⒂没蚪么说卿泿ぬ?hào)。password:指定正在更改的登錄帳號(hào)的密碼,僅適用于SQLServer登錄帳號(hào)。oldpassword:要指派新密碼的登錄帳號(hào)的當(dāng)前密碼,僅適用于SQLServer登錄帳號(hào)。database:指定將指派給登錄帳號(hào)的默認(rèn)數(shù)據(jù)庫(kù)。language:指定將指派給登錄帳號(hào)的默認(rèn)語(yǔ)言。login_name:正在重命名的登錄帳號(hào)的新名稱。SQLServer登錄的新名稱不能包含反斜杠字符(\)。148參數(shù)說(shuō)明login_name:指定正在更改的SQLSe例5禁用stu_admin登錄帳號(hào)。ALTERLOGINstu_adminDISABLE149例5禁用stu_admin登錄帳號(hào)。43例6啟用stu_admin登錄帳號(hào),并將帳號(hào)的登錄密碼更改為111222。ALTERLOGINstu_adminENABLE;ALTERLOGINstu_adminWITHPASSWORD='111222'150例6啟用stu_admin登錄帳號(hào),并將帳號(hào)的登錄密碼更改為例7,將stu_admin登錄帳號(hào)稱更改為user1。ALTERLOGINstu_adminWITHNAME=user1151例7,將stu_admin登錄帳號(hào)稱更改為user1。45利用T-SQL語(yǔ)句刪除服務(wù)器的登錄帳號(hào)語(yǔ)法格式:DROPLOGINlogin_name其中,login_name是指定要?jiǎng)h除的登錄帳號(hào)。152利用T-SQL語(yǔ)句刪除服務(wù)器的登錄帳號(hào)語(yǔ)法格式:46例8,將user1登錄帳號(hào)刪除。DROPLOGINuser1注意:不能刪除正在使用的登錄名,也不能刪除擁有任何安全對(duì)象、服務(wù)器級(jí)別對(duì)象或SQL代理作業(yè)的登錄名。153例8,將user1登錄帳號(hào)刪除。47利用T-SQL語(yǔ)句查看數(shù)據(jù)庫(kù)的用戶帳號(hào)使用sp_helpuser系統(tǒng)存儲(chǔ)過(guò)程可以查看有關(guān)當(dāng)前數(shù)據(jù)庫(kù)中的用戶帳號(hào)信息。其語(yǔ)法格式為:sp_helpuser[security_account]參數(shù)說(shuō)明:
security_account:當(dāng)前數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)用戶帳號(hào)或數(shù)據(jù)庫(kù)角色的名稱。security_account必須存在于當(dāng)前數(shù)據(jù)庫(kù)中。security_account的數(shù)據(jù)類型為sysname,默認(rèn)值為NULL。如果未指定security_account,則sp_helpuser返回當(dāng)前數(shù)據(jù)庫(kù)主體的信息。154利用T-SQL語(yǔ)句查看數(shù)據(jù)庫(kù)的用戶帳號(hào)使用sp_helpus利用T-SQL語(yǔ)句修改數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:ALTERUSERuser_name
WITH<NAME=new_user_name|DEFAULT_SCHEMA=schema_name>[,...n]參數(shù)說(shuō)明:user_name:指定在此數(shù)據(jù)庫(kù)中用于識(shí)別該用戶的名稱。new_user_name:指定此用戶的新名稱,且不存在于在當(dāng)前數(shù)據(jù)庫(kù)。schema_name:指定服務(wù)器在解析此用戶的對(duì)象名稱時(shí)將搜索的第一個(gè)架構(gòu)。155利用T-SQL語(yǔ)句修改數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:49例9,將數(shù)據(jù)庫(kù)登錄用戶U1的名稱更改為user_stu。ALTERUSERU1WITHNAME=user_stu156例9,將數(shù)據(jù)庫(kù)登錄用戶U1的名稱更改為user_stu。50利用T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:DROPUSERuser_name157利用T-SQL語(yǔ)句刪除數(shù)據(jù)庫(kù)的用戶帳號(hào)語(yǔ)法格式:51比較登錄帳戶管理登錄帳戶管理用戶帳戶管理功能命令功能命令創(chuàng)建登錄帳戶CREATELOGIN創(chuàng)建登錄帳戶CREATEUSER禁用登錄帳戶ALTERLOGIN…DISABLE禁用用戶帳戶ALTERUSER…DISABLE刪除登錄帳戶DROPLOGIN刪除用戶帳戶DROPUSER修改登錄帳戶ALTERLOGIN修改用戶帳戶ALTERUSER查看登錄帳戶sp_helplogins查看用戶帳戶sp_helpuser158比較登錄帳戶管理登錄帳戶管理用戶帳戶管理功能命令功能命令創(chuàng)建四、權(quán)限管理當(dāng)用戶成為指定數(shù)據(jù)庫(kù)中的合法用戶之后,除了具有一些系統(tǒng)表的查詢權(quán)之外,對(duì)數(shù)據(jù)庫(kù)中的數(shù)據(jù)
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 保育員個(gè)人發(fā)言稿
- 春節(jié)生產(chǎn)安全培訓(xùn)
- 食品衛(wèi)生安全培訓(xùn)
- 2025版醫(yī)療機(jī)構(gòu)藥品研發(fā)保密協(xié)議范本
- 二零二五年度智慧社區(qū)建設(shè)項(xiàng)目?jī)?nèi)部承包施工合同
- 二零二五年度個(gè)人網(wǎng)絡(luò)直播合作協(xié)議
- 2025版建筑工程施工安全教育培訓(xùn)合同
- 二零二五年度網(wǎng)絡(luò)安全風(fēng)險(xiǎn)評(píng)估與檢測(cè)協(xié)議
- 2025版離婚協(xié)議書:無(wú)子女財(cái)產(chǎn)分配與分割
- 二零二五版勞動(dòng)合同法修訂后企業(yè)應(yīng)對(duì)策略合同
- 高速天橋拆除方案(3篇)
- 2025年中國(guó)冷鏈物流行業(yè)投資前景分析、未來(lái)發(fā)展趨勢(shì)研究報(bào)告(智研咨詢發(fā)布)
- 手外傷急救診療流程標(biāo)準(zhǔn)化
- 農(nóng)村土地托管培訓(xùn)課件
- 老年??谱o(hù)士學(xué)習(xí)培訓(xùn)匯報(bào)
- 2025年機(jī)關(guān)事業(yè)單位工人招聘《機(jī)動(dòng)車駕駛員》技師-考試題庫(kù)與參考答案
- 2025年機(jī)械設(shè)備安裝工試卷及答案
- 基孔肯雅熱防控培訓(xùn)課件
- 老舊小區(qū)改造知識(shí)課件
- 2025年廣東省工業(yè)和信息化廳下屬事業(yè)單位招聘考試筆試試題(含答案)
- 燈具戶外知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論