版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第5章數(shù)據(jù)庫安全保護2(一)登錄帳號登錄帳號是指能登錄到SQLServer服務(wù)器的帳號,也稱登錄名,屬于服務(wù)器的層面,本身并不能讓用戶訪問服務(wù)器中的數(shù)據(jù)庫。如果登錄服務(wù)器的用戶要訪問數(shù)據(jù)庫時必須擁有用戶帳號。3(一)登錄賬號在安裝SQLServer后,系統(tǒng)默認創(chuàng)建兩個登錄帳號,即sa帳號和服務(wù)器帳號。其中sa是超級管理員帳號,允許SQLServer的系統(tǒng)管理員登錄,默認情況下未啟用。然而在實際的使用過程中還需要用戶根據(jù)應(yīng)用需要對登錄帳戶進行必要的管理。信息工程系葉麗珠使用SSMS進入SSMS,右擊“SQLServer服務(wù)器”->“安全性”->“登錄名”,
即可看到系統(tǒng)創(chuàng)建的默認登錄賬號及已建立的其他登錄賬號。使用存儲過程EXECsp_helplogins
1、查看登錄帳號信息工程系葉麗珠方法有如下三種:(1)利用SSMS,如Teach_admin(2)使用T-SQL語句,如stu_admin(3)利用存儲過程,如Mike2、創(chuàng)建登錄帳號62、創(chuàng)建登錄帳號(1)利用“對象資源管理器”創(chuàng)建登錄帳號
數(shù)據(jù)庫服務(wù)器->安全性->登錄名->右擊“新建登錄名”,選擇“SQLSERVER身份驗證”,并設(shè)置默認數(shù)據(jù)庫。
實例1:創(chuàng)建一個登錄名為:Teach_admin,默認訪問數(shù)據(jù)庫為jxsk。782、創(chuàng)建登錄帳號(1)利用“對象資源管理器”創(chuàng)建登錄帳號驗證實例1:試著使用Teach_admin登錄名連接數(shù)據(jù)庫服務(wù)器。
注意:連接前先將數(shù)據(jù)庫服務(wù)器的驗證模式更改為:SQLSERVER驗證模式,并重啟SQL服務(wù)。9(2)利用T-SQL語句創(chuàng)建登錄帳號CREATELOGINlogin_name
{WITH<PASSWORD='password',[<SID=sid
|DEFAULT_DATABASE=database
|DEFAULT_LANGUAGE=language>[,…]]>|FROM<WINDOWS[WITH<DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language>[,…]>}2、創(chuàng)建登錄帳號10參數(shù)說明login_name:指定創(chuàng)建的登錄帳號。password:僅適用于SQLServer登錄帳號,指定正在創(chuàng)建的登錄帳號的密碼。sid:僅適用于SQLServer登錄帳號。指定新SQLServer登錄帳號的GUID。database:指定將指派給登錄帳號的默認數(shù)據(jù)庫。language:指定將指派給登錄帳號的默認語言。WINDOWS
:將登錄帳號映射到Windows登錄名。11在SQLServer服務(wù)器上,創(chuàng)建stu_admin登錄帳號,密碼為123的,默認數(shù)據(jù)庫為jxgl。CREATELOGINstu_adminWITHPASSWORD='123',DEFAULT_DATABASE=jxgl(2)利用T-SQL語句創(chuàng)建登錄帳號---實例212從Windows域帳戶創(chuàng)建[NTAUTHORITY\LOCALSERVICE]
登錄名。CREATELOGIN[NTAUTHORITY\LOCALSERVICE]FROMWINDOWS;(2)利用T-SQL語句創(chuàng)建登錄帳號---實例3信息工程系葉麗珠2、創(chuàng)建登錄帳號(3)利用存儲過程創(chuàng)建登錄帳號---實例4
語法格式:
EXECsp_addlogin‘登錄賬號名稱’,‘密碼’,‘默認數(shù)據(jù)庫名’,‘使用的語言’。
實例4:建立了一個名稱為Mike的登錄賬號。
EXECsp_addlogin'Mike','123','jxsk',NULL特別注意!創(chuàng)建好的服務(wù)器登錄帳號默認的服務(wù)器角色(將在下一小節(jié)補充)是“public”,如果給其另外授予sysadmin(可以執(zhí)行任何操作)角色的權(quán)限,不但能使登錄帳號連接到數(shù)據(jù)庫服務(wù)器,并且可對數(shù)據(jù)進行操作,如查詢。實例演示:Teach_admin登錄帳號信息工程系葉麗珠2、創(chuàng)建登錄帳號信息工程系葉麗珠更改登錄帳號屬性的方法:(1)使用SSMS(2)使用T-SQL語句(3)使用存儲過程sp_password3、修改登錄帳號的屬性信息工程系葉麗珠(1)使用SSMS
數(shù)據(jù)庫服務(wù)器->安全性->展開“登錄名”->選定并右擊->選擇“屬性”。在打開的“登錄屬性”對話框中修改相關(guān)屬性。3、修改登錄帳號的屬性17(2)利用T-SQL語句修改服務(wù)器的登錄帳號語法格式:ALTERLOGINlogin_name
{
ENABLE|DISABLE|WITH<
PASSWORD='password'[OLD_PASSWORD='oldpassword']|DEFAULT_DATABASE=database|DEFAULT_LANGUAGE=language|NAME=login_name>[,...]}18參數(shù)說明login_name:指定正在更改的SQLServer登錄帳號。ENABLE|DISABLE:啟用或禁用此登錄帳號。password:指定正在更改的登錄帳號的密碼,僅適用于SQLServer登錄帳號。oldpassword:要指派新密碼的登錄帳號的當(dāng)前密碼,僅適用于SQLServer登錄帳號。database:指定將指派給登錄帳號的默認數(shù)據(jù)庫。language:指定將指派給登錄帳號的默認語言。login_name
:正在重命名的登錄帳號的新名稱。19實例5:禁用stu_admin登錄帳號。ALTERLOGINstu_adminDISABLE(2)利用T-SQL語句修改服務(wù)器的登錄帳號20實例6:對stu_admin登錄帳號重新啟用后,將帳號的登錄密碼更改為111。ALTERLOGINstu_admin
ENABLEALTERLOGINstu_adminWITHPASSWORD='111'(2)利用T-SQL語句修改服務(wù)器的登錄帳號21實例7:將stu_admin登錄帳號稱更改為stu_zhangsan。ALTERLOGINstu_adminWITHNAME=stu_zhangsan注意!重新連接數(shù)據(jù)庫,即以管理員身份登錄?。?)利用T-SQL語句修改服務(wù)器的登錄帳號信息工程系葉麗珠(3)使用存儲過程sp_password修改登錄密碼其語法格式:EXECsp_password'舊密碼','新密碼','登錄賬號名稱'實例8:修改登錄名Mike的密碼為:111111
EXECsp_password'123','111111','Mike'
3、更改登錄帳號的屬性23(1)使用SSMS刪除登錄帳號
數(shù)據(jù)庫服務(wù)器->安全性->展開“登錄名”->選定并右擊->選擇“刪除”。
(2)利用T-SQL語句刪除服務(wù)器的登錄帳號4、刪除登錄帳號24(2)利用T-SQL語句刪除服務(wù)器的登錄帳號語法格式:DROPLOGINlogin_name其中,login_name是指定要刪除的登錄帳號。4、刪除登錄帳號25實例10:將stu_zhangsan登錄帳號刪除。DROPLOGINstu_zhangsan注意:不能刪除正在使用的登錄名,也不能刪除擁有任何安全對象、服務(wù)器級別對象或SQL代理作業(yè)的登錄名。(2)利用T-SQL語句刪除服務(wù)器的登錄帳號26(二)用戶帳號服務(wù)器登錄帳號創(chuàng)建后,用戶可以通過該登錄帳號訪問SQLSERVER,如果用戶想要訪問某個數(shù)據(jù)庫的數(shù)據(jù),即在要訪問的數(shù)據(jù)庫為該登錄帳號創(chuàng)建一個數(shù)據(jù)庫用戶帳號。默認情況下,數(shù)據(jù)庫創(chuàng)建時包含一個guest用戶。該用戶不能刪除,但可以使用revokeconnectfromguest語句來禁用,除master和temp數(shù)據(jù)庫。信息工程系葉麗珠使用SSMS進入SSMS,展開數(shù)據(jù)庫->選擇某一數(shù)據(jù)庫,如jxgl->“安全性”->“用戶”,
即可看到系統(tǒng)創(chuàng)建的默認用戶賬號及已建立的其他用戶賬號。使用存儲過程EXECsp_helpuser
1、查看用戶帳號信息工程系葉麗珠方法有如下三種:(1)利用SSMS,如Teacher1(2)使用T-SQL語句,如Stu12、創(chuàng)建用戶帳號292、創(chuàng)建用戶帳號(1)利用“對象資源管理器”創(chuàng)建用戶帳號展開“服務(wù)器”【數(shù)據(jù)庫】“jxgl”【安全性】【用戶】->右擊鼠標(biāo)->選擇【新建用戶】選項,打開【數(shù)據(jù)庫用戶】對話框。
實例1:在jxgl數(shù)據(jù)庫,創(chuàng)建一個Teach_admin登錄帳號下的Teacher1用戶帳號。30(2)利用T-SQL語句創(chuàng)建用戶帳號CREATEUSER
user_name[{{FOR|FROM}{LOGINlogin_name}|WITHOUTLOGIN]2、創(chuàng)建用戶帳號31參數(shù)說明user_name:指定在此數(shù)據(jù)庫中用于識別該用戶的名稱。login_name:指定要創(chuàng)建數(shù)據(jù)庫用戶帳號的SQLServer登錄帳號。login_name必須是服務(wù)器中有效的登錄帳號。WITHOUTLOGIN:指定不應(yīng)將用戶映射到現(xiàn)有登錄帳號。32實例2:在jxgl數(shù)據(jù)庫中為登錄帳號stu_admin創(chuàng)建用戶帳號,并取名為Stu1。USE
jxglCREATEUSERStu1FORLOGINstu_admin(2)利用T-SQL語句創(chuàng)建用戶帳號信息工程系葉麗珠更改用戶帳號屬性的方法:(1)使用SSMS(2)使用T-SQL語句3、修改用戶帳號的屬性信息工程系葉麗珠(1)使用SSMS展開“服務(wù)器”【數(shù)據(jù)庫】【用戶數(shù)據(jù)庫】(如jxgl)【安全性】【用戶】。即可看到當(dāng)前數(shù)據(jù)庫的所有用戶帳號。選中用戶,如Teacher1,右擊選擇“屬性”。3、修改用戶帳號的屬性35語法格式:ALTERUSER
user_name
WITH<NAME=
new_user_name|DEFAULT_SCHEMA=schema_name>[,...n]參數(shù)說明:user_name:指定在此數(shù)據(jù)庫中用于識別該用戶的名稱。new_user_name:指定此用戶的新名稱,且不存在于在當(dāng)前數(shù)據(jù)庫。schema_name:指定服務(wù)器在解析此用戶的對象名稱時將搜索的第一個架構(gòu)。(2)利用T-SQL語句修改用戶帳號屬性36實例3:將數(shù)據(jù)庫用戶Stu1的名稱更改為user_stu1。ALTERUSERStu1WITHNAME=
user_stu1(2)利用T-SQL語句修改服務(wù)器的用戶帳號37(1)使用SSMS刪除用戶帳號
數(shù)據(jù)庫,如jxgl->安全性->用戶->選定并右擊->選擇“刪除”。
4、刪除用戶帳號38(2)利用T-SQL語句刪除服務(wù)器的登錄帳號語法格式:DROPUSERuser_name實例4:刪除jxgl數(shù)據(jù)庫中的user_Stu1。UsejxglDROPUSERuser_stu14、刪除登錄帳號39當(dāng)用戶成為指定數(shù)據(jù)庫中的合法用戶之后,除了具有一些系統(tǒng)表的查詢權(quán)之外,對數(shù)據(jù)庫中的數(shù)據(jù)和對象并不具有任何操作權(quán)限,因此,需要為數(shù)據(jù)庫中的用戶帳號授予數(shù)據(jù)庫數(shù)據(jù)及對象的操作權(quán)限。權(quán)限管理(補充:3.9節(jié)P129)40(一)SQLServer權(quán)限分類1.對象權(quán)限2.語句權(quán)限411、對象權(quán)限對象權(quán)限是針對表、視圖和存儲過程而言的,是指用戶對數(shù)據(jù)庫對象中的數(shù)據(jù)能夠執(zhí)行哪些操作。例如當(dāng)用戶Teacher1要修改S表中的數(shù)據(jù),前提是用戶Teacher1要已獲得S表的UPDATE權(quán)限。42對象權(quán)限表權(quán)限描述SELECT可以查詢表、視圖中的數(shù)據(jù)INSERT可以向表中插入行UPDATE可以在表中修改表中的數(shù)據(jù)DELETE可以從表中刪除行EXECUTE可以執(zhí)行存儲過程ALTER可以修改表的屬性REFERENCES可以通過外鍵引用其他表TAKEOWNERSHIP可以取得表的所有權(quán)43其中SELECT、INSERT、UPDATE和DELETE權(quán)限可以應(yīng)用到整個表或視圖中;SELECT和UPDATE權(quán)限還可以有選擇地應(yīng)用到表或視圖中的指定列上。1、對象權(quán)限442.語句權(quán)限語句權(quán)限是指用戶是否具有權(quán)限來執(zhí)行某一語句,這些語句通常是一些具有管理性的操作,如創(chuàng)建表。語句權(quán)限的特點是在語句執(zhí)行前操作的對象并不存在于數(shù)據(jù)庫中,所以將其歸為語句權(quán)限。45語句權(quán)限表權(quán)限描述CREATEDATEBASE創(chuàng)建數(shù)據(jù)庫CREATETABLE創(chuàng)建表CREATEVIEW創(chuàng)建視圖CREATEPROCEDURE創(chuàng)建存儲過程CREATERULE創(chuàng)建規(guī)則CREATEDEFAULT創(chuàng)建默認BACKUPDATABASE備份數(shù)據(jù)庫BACKUPLOG備份事務(wù)日志46(二)權(quán)限管理操作1.使用SSMS給用戶授予、收回權(quán)限2.使用T-SQL語句授予、收回用戶權(quán)限47
1)展開“服務(wù)器”【數(shù)據(jù)庫】【用戶數(shù)據(jù)庫】(如jxgl)【安全性】【用戶】;
2)右擊要設(shè)置權(quán)限的用戶帳號->選擇【屬性】選項,打開【數(shù)據(jù)庫用戶】對話框;
3)在對話框的【選擇頁】中單擊【安全對象】;1、使用SSMS授予、收回權(quán)限48
4)單擊【添加】按鈕,打開【添加對象】對話框,選取“特定對象”單選按鈕。
實例1:給jxgl數(shù)據(jù)庫中的Teacher1用戶授予對教師表、授課表、課程表的SELECT、UPDATE權(quán)限。1、使用SSMS授予、收回權(quán)限50注意!驗證時,需要更改連接(單擊工具欄上的圖標(biāo)),以Teach_admin登錄,再在查詢窗口中查詢教師、課程、授課等信息。如果只允許用戶查詢教師表的教師編號、姓名、職稱等列的信息,可以單擊上圖所示對話框底部的【列權(quán)限】按鈕,可以進一步設(shè)置用戶對其中的哪些列具有操作權(quán)限。512、使用T-SQL語句授予、收回權(quán)限(1)GRANT語句(2)REVOKE語句(3)DENY語句52(1)GRANT語句GRANT{ALL[PRIVILEGES]|permission[,...n]}{[(column[,...n])]ON{table_name|view_name}}|ON{table_name|view_name}[(column[,...n])]TOsecurity_account[,...n][WITHGRANTOPTION]53參數(shù)說明:ALL:表示具有所有的語句權(quán)限或所有的對象權(quán)限;permission
:是指相應(yīng)對象的有效權(quán)限的組合;column
:指定表、視圖中要授予對其權(quán)限的列名稱,且只能授予對列的SELECT、REFERENCES及UPDATE權(quán)限。列名需要使用括號()括起來。security_account:表示被授權(quán)的一個或多個用戶帳號;WITHGRANTOPTION:表示獲得某種權(quán)限的用戶還可以將此權(quán)限再授予其他用戶;若無此短語,表示該用戶只能使用被授予的權(quán)限,不能傳播權(quán)限。54實例2:將jxsk
數(shù)據(jù)庫中的S表的查詢權(quán)限授予用戶user_stu1。UsejxskGRANTSELECTONS
TO
user_stu1執(zhí)行操作后,stu_admin登錄SQLServer后,可以對S表進行SELECT的操作,但它不能將此權(quán)限授予其他用戶。(1)GRANT語句55實例3:將S表查詢權(quán)授予全體用戶。GRANTSELECTONSTOPUBLIC執(zhí)行此操作后,jxsk數(shù)據(jù)庫的每個用戶登錄SQLServer后都可以對S表進行SELECT操作。驗證:以管理員身份登錄,在
jxsk數(shù)據(jù)庫中創(chuàng)建user_Teacher1用戶,登錄名選擇Teach_admin,然后以Teach_admin身份登錄查詢S
表。(1)GRANT語句56實例4:將表S的插入權(quán)限和修改SN、Dept的權(quán)限授予用戶user_ins1(輔導(dǎo)員1)。GRANTSELECT,UPDATE(SN,Dept)ONSTOuser_ins1驗證:以Ins_admin身份登錄,查詢S表和更新SN字段。(1)GRANT語句57實驗5:將jxgl數(shù)據(jù)庫中的學(xué)生表的查詢權(quán)授予用戶user_stu2,并允許它將此權(quán)限再授予其他用戶。UsejxglGRANTSELECTON學(xué)生TO
user_stu2WITHGRANTOPTION執(zhí)行此操作后,
user_stu2
用戶登錄SQLServer后不僅可以對學(xué)生表進行SELECT操作,同時還可以使用GRANT語句給其他用戶授權(quán)。(1)GRANT語句58驗證實驗5:以stu_admin身份登錄,并打開jxgl數(shù)據(jù)庫。1)查詢學(xué)生表;2)將學(xué)生表的查詢權(quán)限授予Teacher1用戶。grantselecton學(xué)生toTeacher1(1)GRANT語句59(2)REVOKE語句—收回權(quán)限REVOKE[GRANTOPTIONFOR]{[ALL[PRIVILEGES]]|permission[(column[,...n])][,...n]}{TO|FROM}security_account[,...n][CASCADE]參數(shù)說明:GRANTOPTIONFOR:指示將撤消授予指定權(quán)限的能力。CASCADE
:指示當(dāng)前正在撤消的權(quán)限也將從其他被該主體授權(quán)的主體中撤消。60實例6:撤銷jxsk
數(shù)據(jù)庫中用戶user_ins1(輔導(dǎo)員1)在S表上SN的修改權(quán)。REVOKEUPDATE(SN)ONSFROMuser_ins1驗證:以Ins_admin身份登錄,在查詢窗口中試著修改jxsk數(shù)據(jù)庫S表的SN字段值。(2)REVOKE語句—收回權(quán)限61實例7:撤銷用戶user_stu2對jxgl數(shù)據(jù)庫中的學(xué)生表的查詢權(quán)限。
REVOKESELECTON學(xué)生FROMuser_stu2
CASCADE由于前面操作中user_stu2在獲得了對學(xué)生表的SELECT權(quán)限后,又將該操作權(quán)授予了Teacher1。在執(zhí)行上例的REVOKE語句后,將user_stu2用戶對學(xué)生表的SELECT權(quán)限收回的同時,采用級聯(lián)收回的方式自動收回Teacher1對學(xué)生表的SELECT權(quán)限。如果省略CASCADE,系統(tǒng)將拒絕執(zhí)行該命令。62注意!如果用戶Teacher1還從其他用戶那里獲得了對教師表、課程表、授課表的SELECT權(quán)限,執(zhí)行上例的REVOKE語句后,系統(tǒng)只收回直接或間接從user_stu2處獲得的權(quán)限,并沒有收回從其他用戶處獲得的權(quán)限,因此他們?nèi)跃哂衅渌麢?quán)限。63(3)DENY語句使用DENY語句可以拒絕對授予用戶或角色的權(quán)限,防止用戶通過其組或角色成員身份繼承權(quán)限。其語法格式為:DENY{[ALL[PRIVILEGES]]|permission[(column[,...n])][,...n]}TOsecurity_account[,...n]
[CASCADE]64實例8:以管理員身份登錄,拒絕用戶Teacher1擁有課程表的查詢權(quán)限。DENYSELECTON
課程TOTeacher1執(zhí)行此操作后,Teacher1用戶登錄SQLServer不能對課程表進行SELECT操作,即使該用戶被明確授予或繼承得到對課程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026中條山集團招聘面試題及答案
- 2026小鵬汽車招聘面試題及答案
- 項目管理PMP考試通過率提升技巧含答案
- 投資顧問面試題集及專業(yè)解答
- 京東快遞員面試題集及答案詳解
- 企業(yè)級軟件開發(fā)測試崗位的技巧和題目解析
- 通信設(shè)備公司技術(shù)專家面試問題與答案
- 2026年遼寧開放大學(xué)輔導(dǎo)員招聘備考題庫附答案
- 2026年心理咨詢師之心理咨詢師基礎(chǔ)知識考試題庫含完整答案(網(wǎng)校專用)
- 一級2026年注冊建筑師之設(shè)計前期與場地設(shè)計考試題庫300道帶答案(新)
- 鋼筋棚拆除合同范本
- 斷絕親子協(xié)議書
- 【MOOC答案】《光纖光學(xué)》(華中科技大學(xué))章節(jié)作業(yè)期末慕課答案
- 小學(xué)生班級管理交流課件
- DB21T 3722.7-2025高標(biāo)準(zhǔn)農(nóng)田建設(shè)指南 第7部分:高標(biāo)準(zhǔn)農(nóng)田工程施工質(zhì)量評定規(guī)范
- 近八年寧夏中考數(shù)學(xué)試卷真題及答案2024
- 超星爾雅學(xué)習(xí)通《帶您走進西藏(西藏民族大學(xué))》2025章節(jié)測試附答案
- 超星爾雅學(xué)習(xí)通《科學(xué)計算與MATLAB語言(中南大學(xué))》2025章節(jié)測試附答案
- 綠色簡約風(fēng)王陽明傳知行合一
- 【MOOC】宇宙簡史-南京大學(xué) 中國大學(xué)慕課MOOC答案
- 重精管理培訓(xùn)
評論
0/150
提交評論