您好,登錄后才能下訂單哦!
SQL Server 是Microsoft 公司推出的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。具有使用方便可伸縮性好與相關(guān)軟件集成程度高等優(yōu)點(diǎn),可跨越從運(yùn)行Microsoft Windows 98 的膝上型電腦到運(yùn)行Microsoft Windows 2012 的大型多處理器的服務(wù)器等多種平臺使用。
Microsoft SQL Server 是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級的數(shù)據(jù)管理。Microsoft SQL Server 數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,使您可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。
SQL Server與其他服務(wù)器不同,通常保存著運(yùn)營、開發(fā)、市場等重要數(shù)據(jù),其中大量數(shù)據(jù)還涉及機(jī)密。因此掌握SQL Server的權(quán)限設(shè)置是DBA必備的關(guān)鍵技能。
SQL Server的安全性是建立在認(rèn)證和訪問許可兩種安全機(jī)制之上的。其中,認(rèn)證是用來確定登錄SQL Server的用戶的登錄賬號和密碼是否正確,以此來驗(yàn)證其是否具有連接SQL Server的權(quán)限;
訪問許可用來授予用戶或組能夠在數(shù)據(jù)庫中執(zhí)行哪些操作,如創(chuàng)建表、查詢數(shù)據(jù)等。
SQL Server的安全機(jī)制主要包括以下四個方面:
客戶機(jī)的安全機(jī)制;
服務(wù)器的安全機(jī)制;
數(shù)據(jù)庫的安全機(jī)制;
- 數(shù)據(jù)對象的安全機(jī)制;
用戶必須能夠登錄客戶機(jī),然后才能使用SQL Server應(yīng)用程序或管理工具來訪問數(shù)據(jù)庫。對于使用Windows系統(tǒng)的客戶來說,它主要涉及到操作系統(tǒng)的安全。主要是Windows賬號的安全。
用戶登錄服務(wù)器時(shí),必須使用一個賬號(也稱為登錄賬號)和密碼,服務(wù)器會按照不同的身份驗(yàn)證方式來判斷這個賬號和密碼的正確性。
任何能夠登錄服務(wù)器的賬號和密碼都對應(yīng)著一個默認(rèn)的數(shù)據(jù)庫。SQL Server對數(shù)據(jù)庫的權(quán)限管理采用的”數(shù)據(jù)庫用戶”的概念。
SQL Server有以下兩種身份驗(yàn)證模式:
Windows身份驗(yàn)證模式;
SQL Server和Windows身份驗(yàn)證模式(混合驗(yàn)證模式);
當(dāng)使用Windows身份驗(yàn)證時(shí),SQL Server會使用操作系統(tǒng)中的Windows用戶密碼。也就是說,用戶身份由Windows進(jìn)行確認(rèn)。SQL Server不再提供密碼,也不執(zhí)行身份驗(yàn)證。Windows身份驗(yàn)證使用Kerberos安全協(xié)議。比SQL Server身份驗(yàn)證更為安全協(xié)議,比SQL Server身份驗(yàn)證更為安全,可以保護(hù)SQL Server免受大部分來自網(wǎng)絡(luò)的非法操作。
Windows身份驗(yàn)證模式適用于局域網(wǎng)內(nèi)部,訪問數(shù)據(jù)庫的情況。
SQL Server和Windows 身份驗(yàn)證模式也稱為混合驗(yàn)證模式。允許用戶使用Windows身份驗(yàn)證或者使用SQL Server身份驗(yàn)證進(jìn)行連接。該模式通常用于運(yùn)行非Windows系統(tǒng)環(huán)境的用戶、Internet用戶或混雜的工作組用戶訪問SQL Server時(shí)。例如,外界用戶訪問數(shù)據(jù)庫或不能登錄Windows域時(shí)。
當(dāng)使用SQL Server身份驗(yàn)證時(shí),在SQL Server中創(chuàng)建的登錄名并不是基于Windows用戶賬號的。用戶名和密碼通過使用SQL Server創(chuàng)建并存儲在SQL Server中。如果必須使用SQL Server身份驗(yàn)證,必須為所有SQL Server賬號啟用密碼策略,如強(qiáng)制密碼過期、密碼復(fù)雜度等。
在SSMS中設(shè)置服務(wù)器身份驗(yàn)證模式,方法如下:
打開SSMS,右擊SSMS實(shí)例,在彈出的快捷菜單中選擇“屬性”命令
在打開的“服務(wù)器屬性”窗口中選中“安全性”選項(xiàng),可以設(shè)置身份驗(yàn)證模式
通過使用SSMS可以創(chuàng)建和管理登錄賬戶。在默認(rèn)情況下,SQL Server使用Windows身份驗(yàn)證模式,SQL Server的登錄賬戶無法登錄。如果需要利用創(chuàng)建的SQL Server賬戶登錄,需要將身份驗(yàn)證模式改為SQL Server和Windows身份驗(yàn)證模式
在SQL Server中,對SQL Server登錄賬戶提供了以下安全策略:
強(qiáng)制實(shí)施密碼策略;
強(qiáng)制密碼過期;
- 用戶在下次登錄時(shí)必須更改密碼;
當(dāng)新建SQL Server登錄賬號時(shí),為了提高其安全性,建議選中“強(qiáng)制密碼策略”復(fù)選框。
sa是SQL Server的默認(rèn)管理員賬號,由于該賬號廣為人知,容易成為惡意用戶的非法操作目標(biāo),因此除非某些程序要求必須使用sa賬號,否則建議禁用此賬號。絕對不能將sa賬號設(shè)置為空密碼或弱密碼,建議創(chuàng)建一個擁有與sa賬戶權(quán)限相同的超級用戶來管理數(shù)據(jù)庫。但是不能讓擁有管理員權(quán)限的賬號泛濫。
SQL Server中的訪問許可可以分別從服務(wù)器、數(shù)據(jù)庫及對象三個級別進(jìn)行設(shè)置。
在SQL Server中內(nèi)置了一組服務(wù)器角色(也稱為固定服務(wù)器角色),這些角色用來執(zhí)行服務(wù)器級別的管理,如創(chuàng)建數(shù)據(jù)庫、管理和審核登錄賬戶、中止SQL Server實(shí)例中長時(shí)間運(yùn)行的進(jìn)程等。他們作用域整臺服務(wù)器,而非單獨(dú)某個數(shù)據(jù)庫。SQL Server2016中的“角色”類似于Windows中的“組”。通過將不同的角色賦予不同的用戶,用戶可以具有不同的操作權(quán)限。
一個用戶可以擁有多個固定服務(wù)器角色權(quán)限,但是固定服務(wù)器角色不能被修改、添加和刪除。具體服務(wù)器角色及其能夠執(zhí)行的操作如下:
SQL Server中還有一個特殊的服務(wù)器角色public,所有登錄名都屬于該角色。該角色只擁有查看數(shù)據(jù)庫的權(quán)限。
建立了SQL Server登錄賬戶后,需要賦予用戶權(quán)限,用戶才能夠?qū)?shù)據(jù)庫進(jìn)行查詢與更新等操作。登錄賬戶用戶訪問SQL Server實(shí)例,數(shù)據(jù)庫用戶則用于訪問數(shù)據(jù)庫。如果需要訪問某個數(shù)據(jù)庫,則需要在數(shù)據(jù)庫中建立相應(yīng)的數(shù)據(jù)庫用戶。
實(shí)際上,數(shù)據(jù)庫用戶是映射到登錄賬戶上的。建立過程如下:
創(chuàng)建的任何一個數(shù)據(jù)庫中默認(rèn)包含兩個特殊用戶dbo和guest,且不能被修改和刪除,如圖:
dbo是數(shù)據(jù)庫的所有者,對數(shù)據(jù)庫具有所有權(quán)限。默認(rèn)情況下,創(chuàng)建數(shù)據(jù)庫的登錄賬號自動對應(yīng)于數(shù)據(jù)庫的dbo用戶,dbo用戶又屬于db_owner數(shù)據(jù)庫角色的成員,而db_owner數(shù)據(jù)庫角色具有對數(shù)據(jù)庫的全部權(quán)限。因此,可以說那個登錄賬戶創(chuàng)建了數(shù)據(jù)庫,這個登錄賬戶就具備了該數(shù)據(jù)庫的所有管理權(quán)限。此外,登錄賬戶sa對應(yīng)所有系統(tǒng)數(shù)據(jù)庫的dbo用戶。
- guest是來賓用戶,同樣不可刪除。guest用戶不映射任何登錄賬戶。所有沒映射的登錄賬戶都將以guest用戶身份訪問數(shù)據(jù)庫。guest用戶默認(rèn)沒有任何權(quán)限,且處于禁用狀態(tài),因此啟用并授予權(quán)限時(shí)一定要慎重。
服務(wù)器角色主要控制服務(wù)器登錄名在服務(wù)器范圍內(nèi)的訪問,但是在設(shè)置具體數(shù)據(jù)庫的管理和操作權(quán)限方面就顯得權(quán)限太大了,因此需要依靠數(shù)據(jù)庫角色對數(shù)據(jù)庫級別的對象進(jìn)行更加細(xì)化的權(quán)限劃分。SQL Server默認(rèn)提供了一組固定數(shù)據(jù)庫角色,用來賦予用戶操作數(shù)據(jù)庫的權(quán)限,如查詢數(shù)據(jù)表、備份和還原數(shù)據(jù)庫等。固定數(shù)據(jù)庫角色及其權(quán)限如下圖:
固定數(shù)據(jù)庫還包含有一個名為public的角色,該角色用來捕捉數(shù)據(jù)庫用戶的所有默認(rèn)權(quán)限,所有用戶都屬于public角色,該角色同樣不可以被刪除;
- 數(shù)據(jù)控制語言包括GRANT和REVOKE;
為用戶設(shè)置數(shù)據(jù)庫級別權(quán)限的具體步驟如下:
根據(jù)自己需求自行配置選項(xiàng)即可
一個數(shù)據(jù)庫中通常包含多個數(shù)據(jù)表、視圖、存儲過程等對象,如果賦予了某個用戶對數(shù)據(jù)庫的讀取權(quán)限,用戶就可以讀取該數(shù)據(jù)庫下的所有表或視圖等。
SQL Server還提供了一些更細(xì)化的權(quán)限,如查詢、插入或更新數(shù)據(jù)的權(quán)限等,這些權(quán)限可以作用于單個表上。常用的權(quán)限及其說明如下圖:
在單個表上授予用戶權(quán)限的具體步驟如下:
如果同時(shí)賦予了“授予”和“拒絕”權(quán)限,則“拒絕”權(quán)限的優(yōu)先級高于“授予”權(quán)限。
數(shù)據(jù)庫本身也是對象,為數(shù)據(jù)庫授權(quán)是,可以為其授予在數(shù)據(jù)庫中創(chuàng)建其他各種對象的權(quán)限,如更改用戶、創(chuàng)建表、查詢數(shù)據(jù)等。
在單個數(shù)據(jù)庫上授權(quán)用戶權(quán)限的具體操作步驟如下:
數(shù)據(jù)庫管理員最擔(dān)心的情況就是數(shù)據(jù)庫癱瘓,造成數(shù)據(jù)丟失。而備份作為數(shù)據(jù)的副本,可以有效的保護(hù)和恢復(fù)數(shù)據(jù)。
對于生產(chǎn)數(shù)據(jù)來講,數(shù)據(jù)的安全性是至關(guān)重要的,任何數(shù)據(jù)的丟失都可能產(chǎn)生嚴(yán)重的后果。通常,造成數(shù)據(jù)丟失的原因主要包括以下幾類:
在SQL Server中提供了三種常用的備份類型,分別是完整備份、差異備份和事務(wù)日志備份。
完整備份包括對整個數(shù)據(jù)庫、部分事務(wù)日志、數(shù)據(jù)庫結(jié)構(gòu)和文件結(jié)構(gòu)的備份。完成備份代表的是備份完成時(shí)刻的數(shù)據(jù)庫。
完整備份是備份的基礎(chǔ),提供了任何其他備份的基準(zhǔn)。其他備份(如差異備份)只有在執(zhí)行完成備份之后才能被執(zhí)行。
差異備份是指對上一次完整備份之后所有更改的數(shù)據(jù)做備份,備份過程能夠識別出數(shù)據(jù)庫哪一部分被修改了,并只對這一部分做備份。
差異備份的優(yōu)勢是速度快、備份數(shù)據(jù)庫所需要的時(shí)間很少,但差異備份要求事先執(zhí)行一次完成備份。
事務(wù)日志備份記錄了數(shù)據(jù)庫的所有改變。在備份事務(wù)日志時(shí)需要考慮以下因素:
在執(zhí)行了至少一次完成備份后,才能備份事務(wù)日志;
在簡單恢復(fù)模式下不能備份事務(wù)日志;
- 如果沒有與其一致的數(shù)據(jù)庫備份,則不能恢復(fù)事務(wù)日志;
在執(zhí)行數(shù)據(jù)庫事務(wù)日志備份期間,SQL Server將做以下工作:
備份事務(wù)日志:從上一次成功的事務(wù)日志備份到當(dāng)前事務(wù)日志的尾部;
- 截?cái)嗍聞?wù)日志:到事務(wù)日志活動部分的開始,丟棄不活動的部分;
此外,事務(wù)日志備份主要是SQL語句,而不是整個數(shù)據(jù)庫結(jié)構(gòu)、文件結(jié)構(gòu)或數(shù)據(jù)。
不管是備份還是還原,都是在一定的恢復(fù)模式中進(jìn)行的?;謴?fù)模式是數(shù)據(jù)庫的一種特性、控制這數(shù)據(jù)庫備份和還原的基本行為。書籍庫管理員應(yīng)根據(jù)企業(yè)系統(tǒng)實(shí)際運(yùn)作的需求及對數(shù)據(jù)可用性和恢復(fù)的需求來選擇合適的恢復(fù)模式。
SQL Server提供了三種恢復(fù)模式:簡單模式、完整恢復(fù)模式和大容量恢復(fù)模式。
在簡單恢復(fù)下,,不活動的日志將被刪除,所以不支持事務(wù)日志備份,如下圖所示,圖中進(jìn)行了一些數(shù)據(jù)庫備份。在最近的備份t5之后的一段時(shí)間,此數(shù)據(jù)庫中出現(xiàn)了數(shù)據(jù)丟失。數(shù)據(jù)庫管理員將使用t5備份來講數(shù)據(jù)庫還原到備份完成的時(shí)間點(diǎn),之后對數(shù)據(jù)庫進(jìn)行更改將丟失。
由于不支持事務(wù)日志備份、數(shù)據(jù)庫只能恢復(fù)到備份的時(shí)間點(diǎn),而無法將數(shù)據(jù)庫還原到故障點(diǎn)或特定的時(shí)間點(diǎn)。因此,簡單恢復(fù)模式主要用于小型數(shù)據(jù)庫和不經(jīng)常更改的數(shù)據(jù)庫。
對于十分重要的生產(chǎn)數(shù)據(jù)庫,在發(fā)生故障時(shí)可能要求恢復(fù)到歷史上某個時(shí)刻。一旦發(fā)生故障時(shí),必須保證數(shù)據(jù)不丟失,一旦發(fā)生故障時(shí),必須保證數(shù)據(jù)不丟失,保證數(shù)據(jù)能夠恢復(fù)到發(fā)生故障時(shí)的狀態(tài)。這樣,就必須采用完整恢復(fù)模式。
完整恢復(fù)模式可在最大范圍內(nèi)防止出現(xiàn)故障時(shí)丟失數(shù)據(jù),它包括數(shù)據(jù)庫備份和事務(wù)日志備份,并提供全面保護(hù),使數(shù)據(jù)庫免受媒體故障的影響。這個模式使用數(shù)據(jù)庫和所有日志的備份區(qū)恢復(fù)數(shù)據(jù)庫如果日志沒有損壞,SQL Server可以恢復(fù)所有數(shù)據(jù),除了在失敗那一刻的事務(wù)。
由于支持事務(wù)日志備份,因此完整恢復(fù)模式可以將數(shù)據(jù)庫恢復(fù)到任意一個指定的時(shí)間點(diǎn)。如圖:
圖中,能將數(shù)據(jù)庫恢復(fù)到故障點(diǎn),從而恢復(fù)所有數(shù)據(jù),恢復(fù)操作可以還原所有已提交的事務(wù),正在進(jìn)行的事務(wù)將回滾。
DBA在某些場合需要對數(shù)據(jù)庫執(zhí)行一些大批量的數(shù)據(jù)插入、更新或刪除操作,如一次需要導(dǎo)入上百萬條數(shù)據(jù)。如果在完整恢復(fù)模式下,那么這些操作將產(chǎn)生大量的日志記錄,導(dǎo)致數(shù)據(jù)庫性能很低。在這種環(huán)境下,可以采用大容量日志恢復(fù)模式來提高性能。
雖然大容量日志恢復(fù)模式會完整地記錄其他事務(wù),但它只對大容量操作進(jìn)行最小記錄。大容量日志恢復(fù)模式是對完整恢復(fù)模式的補(bǔ)充,提供了良好的性能,且占用較小的日志空間d.anshi,大容量日志恢復(fù)模式增加了這些大容量復(fù)制操作丟失數(shù)據(jù)的風(fēng)險(xiǎn),因?yàn)樽钚∪罩居涗洿笕萘坎僮鞑粫饌€記錄書屋。
只要日志備份包含大容量操作,數(shù)據(jù)庫就只能恢復(fù)到日志備份的結(jié)尾,而不能恢復(fù)懂啊某個時(shí)間點(diǎn),或日志備份中某個標(biāo)記的事務(wù)。
在進(jìn)行備份的時(shí)候,首先需要建立一個文件來存儲備份的數(shù)據(jù),這個備份文件就叫備份設(shè)備。
SQL Server使用物理備份設(shè)備和邏輯備份設(shè)備標(biāo)識備份設(shè)備。
物理備份設(shè)備是操作系統(tǒng)用來表示備份設(shè)備的名稱;比如:C:\Backups\Accounting\Full.bak。
邏輯備份設(shè)備是用戶定義的別名,用來標(biāo)識物理備份設(shè)備;邏輯備份設(shè)備永久地存儲在SQL Server內(nèi)的系統(tǒng)表中,使用邏輯備份設(shè)備的優(yōu)點(diǎn)是引用它比引用物理設(shè)備名稱簡單。
———————— 本文至此結(jié)束,感謝閱讀 ————————
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。