SQL

站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到彌渡網(wǎng)站設(shè)計(jì)與彌渡網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:網(wǎng)站建設(shè)、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋彌渡地區(qū)。
Server數(shù)據(jù)庫(kù)安全包括:1、數(shù)據(jù)信息安全,不易被非法程序讀取。2、數(shù)據(jù)信息完整,不會(huì)因?yàn)榇鎯?chǔ)時(shí)間長(zhǎng)等意外情況而丟失數(shù)據(jù)。3、好像還有個(gè)備份還原機(jī)制,從而使損壞數(shù)據(jù)能夠恢復(fù)。
其他的忘記了,希望對(duì)你有所幫助
SQLServer2000的安全配置在進(jìn)行SQLServer2000數(shù)據(jù)庫(kù)的安全配置之前,首先你必須對(duì)操作系統(tǒng)進(jìn)行安全配置,保證你的操作系統(tǒng)處于安全狀態(tài)。然后對(duì)你要使用的操作數(shù)據(jù)庫(kù)軟件(程序)進(jìn)行必要的安全審核,比如對(duì)ASP、PHP等腳本,這是很多基于數(shù)據(jù)庫(kù)的WEB應(yīng)用常出現(xiàn)的安全隱患,對(duì)于腳本主要是一個(gè)過(guò)濾問(wèn)題,需要過(guò)濾一些類似,‘;@/等字符,防止破壞者構(gòu)造惡意的SQL語(yǔ)句。接著,安裝SQLServer2000后請(qǐng)打上補(bǔ)丁sp1,sp2以及最新的sp3,sp4。在做完上面三步基礎(chǔ)之后,我們?cè)賮?lái)討論SQLServer的安全配置。1、使用安全的密碼策略我們把密碼策略擺在所有安全配置的第一步,請(qǐng)注意,很多數(shù)據(jù)庫(kù)帳號(hào)的密碼過(guò)于簡(jiǎn)單,這跟系統(tǒng)密碼過(guò)于簡(jiǎn)單是一個(gè)道理。對(duì)于sa更應(yīng)該注意,同時(shí)不要讓sa帳號(hào)的密碼寫(xiě)于應(yīng)用程序或者腳本中。健壯的密碼是安全的第一步!SQLServer2000安裝的時(shí)候,如果是使用混合模式,那么就需要輸入sa的密碼,除非你確認(rèn)必須使用空密碼。這比以前的版本有所改進(jìn)。同時(shí)養(yǎng)成定期修改密碼的好習(xí)慣。數(shù)據(jù)庫(kù)管理員應(yīng)該定期查看是否有不符合密碼要求的帳號(hào)。比如使用下面的SQL語(yǔ)句:UsemasterSelectname,Passwordfromsysloginswherepasswordisnull2、使用安全的帳號(hào)策略由于SQLServer不能更改sa用戶名稱,也不能刪除這個(gè)超級(jí)用戶,所以,我們必須對(duì)這個(gè)帳號(hào)進(jìn)行最強(qiáng)的保護(hù),當(dāng)然,包括使用一個(gè)非常強(qiáng)壯的密碼,最好不要在數(shù)據(jù)庫(kù)應(yīng)用中使用sa帳號(hào),只有當(dāng)沒(méi)有其它方法登錄到SQLServer實(shí)例(例如,當(dāng)其它系統(tǒng)管理員不可用或忘記了密碼)時(shí)才使用sa。建議數(shù)據(jù)庫(kù)管理員新建立個(gè)擁有與sa一樣權(quán)限的超級(jí)用戶來(lái)管理數(shù)據(jù)庫(kù)。安全的帳號(hào)策略還包括不要讓管理員權(quán)限的帳號(hào)泛濫。SQLServer的認(rèn)證模式有Windows身份認(rèn)證和混合身份認(rèn)證兩種。如果數(shù)據(jù)庫(kù)管理員不希望操作系統(tǒng)管理員來(lái)通過(guò)操作系統(tǒng)登陸來(lái)接觸數(shù)據(jù)庫(kù)的話,可以在帳號(hào)管理中把系統(tǒng)帳號(hào)“BUILTIN\Administrators”刪除。不過(guò)這樣做的結(jié)果是一旦sa帳號(hào)忘記密碼的話,就沒(méi)有法來(lái)恢復(fù)了。很多主機(jī)使用數(shù)據(jù)庫(kù)應(yīng)用只是用來(lái)做查詢、修改等簡(jiǎn)單功能的,請(qǐng)根據(jù)實(shí)際需要分配帳號(hào),并賦予僅僅能夠滿足應(yīng)用要求和需要的權(quán)限。比如,只要查詢功能的,那么就使用一個(gè)簡(jiǎn)單的public帳號(hào)能夠select就可以了。3、加強(qiáng)數(shù)據(jù)庫(kù)日志的記錄審核數(shù)據(jù)庫(kù)登錄事件的“失敗和成功”,在實(shí)例屬性中選擇“安全性”,將其中的審核級(jí)別選定為全部,這樣在數(shù)據(jù)庫(kù)系統(tǒng)和操作系統(tǒng)日志里面,就詳細(xì)記錄了所有帳號(hào)的登錄事件。請(qǐng)定期查看SQLServer日志檢查是否有可疑的登錄事件發(fā)生,或者使用DOS命令。findstr/C:"登錄"d:\MicrosoftSQLServer\MSSQL\LOG\*.*4、管理擴(kuò)展存儲(chǔ)過(guò)程對(duì)存儲(chǔ)過(guò)程進(jìn)行大手術(shù),并且對(duì)帳號(hào)調(diào)用擴(kuò)展存儲(chǔ)過(guò)程的權(quán)限要慎重。其實(shí)在多數(shù)應(yīng)用中根本用不到多少系統(tǒng)的存儲(chǔ)過(guò)程,而SQLServer的這么多系統(tǒng)存儲(chǔ)過(guò)程只是用來(lái)適應(yīng)廣大用戶需求的,所以請(qǐng)刪除不必要的存儲(chǔ)過(guò)程,因?yàn)橛行┫到y(tǒng)的存儲(chǔ)過(guò)程能很容易地被人利用起來(lái)提升權(quán)限或進(jìn)行破壞。如果你不需要擴(kuò)展存儲(chǔ)過(guò)程xp_cmdshell請(qǐng)把它去掉。使用這個(gè)SQL語(yǔ)句:usemastersp_dropextendedproc'xp_cmdshell'xp_cmdshell是進(jìn)入操作系統(tǒng)的最佳捷徑,是數(shù)據(jù)庫(kù)留給操作系統(tǒng)的一個(gè)大后門。如果你需要這個(gè)存儲(chǔ)過(guò)程,請(qǐng)用這個(gè)語(yǔ)句也可以恢復(fù)過(guò)來(lái)。sp_addextendedproc'xp_cmdshell','xpsql70.dll'如果你不需要請(qǐng)丟棄OLE自動(dòng)存儲(chǔ)過(guò)程(會(huì)造成管理器中的某些特征不能使用),這些過(guò)程包括如下:Sp_OACreateSp_OADestroySp_OAGetErrorInfoSp_OAGetPropertySp_OAMethodSp_OASetPropertySp_OAStop去掉不需要的注冊(cè)表訪問(wèn)的存儲(chǔ)過(guò)程,注冊(cè)表存儲(chǔ)過(guò)程甚至能夠讀出操作系統(tǒng)管理員的密碼來(lái),如下:Xp_regaddmultistringXp_regdeletekeyXp_regdeletevalueXp_regenumvaluesXp_regreadXp_regremovemultistringXp_regwrite還有一些其他的擴(kuò)展存儲(chǔ)過(guò)程,你也最好檢查檢查。在處理存儲(chǔ)過(guò)程的時(shí)候,請(qǐng)確認(rèn)一下,避免造成對(duì)數(shù)據(jù)庫(kù)或應(yīng)用程序的傷害。5、使用協(xié)議加密SQLServer2000使用的TabularDataStream協(xié)議來(lái)進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)交換,如果不加密的話,所有的網(wǎng)絡(luò)傳輸都是明文的,包括密碼、數(shù)據(jù)庫(kù)內(nèi)容等等,這是一個(gè)很大的安全威脅。能被人在網(wǎng)絡(luò)中截獲到他們需要的東西,包括數(shù)據(jù)庫(kù)帳號(hào)和密碼。所以,在條件容許情況下,最好使用SSL來(lái)加密協(xié)議,當(dāng)然,你需要一個(gè)證書(shū)來(lái)支持。6、不要讓人隨便探測(cè)到你的TCP/IP端口默認(rèn)情況下,SQLServer使用1433端口監(jiān)聽(tīng),很多人都說(shuō)SQLServer配置的時(shí)候要把這個(gè)端口改變,這樣別人就不能很容易地知道使用的什么端口了。可惜,通過(guò)微軟未公開(kāi)的1434端口的UDP探測(cè)可以很容易知道SQLServer使用的什么TCP/IP端口了。不過(guò)微軟還是考慮到了這個(gè)問(wèn)題,畢竟公開(kāi)而且開(kāi)放的端口會(huì)引起不必要的麻煩。在實(shí)例屬性中選擇TCP/IP協(xié)議的屬性。選擇隱藏SQLServer實(shí)例。如果隱藏了SQLServer實(shí)例,則將禁止對(duì)試圖枚舉網(wǎng)絡(luò)上現(xiàn)有的SQLServer實(shí)例的客戶端所發(fā)出的廣播作出響應(yīng)。這樣,別人就不能用1434來(lái)探測(cè)你的TCP/IP端口了(除非用PortScan)。7、修改TCP/IP使用的端口請(qǐng)?jiān)谏弦徊脚渲玫幕A(chǔ)上,更改原默認(rèn)的1433端口。在實(shí)例屬性中選擇網(wǎng)絡(luò)配置中的TCP/IP協(xié)議的屬性,將TCP/IP使用的默認(rèn)端口變?yōu)槠渌丝?9、拒絕來(lái)自1434端口的探測(cè)由于1434端口探測(cè)沒(méi)有限制,能夠被別人探測(cè)到一些數(shù)據(jù)庫(kù)信息,而且還可能遭到DOS攻擊讓數(shù)據(jù)庫(kù)服務(wù)器的CPU負(fù)荷增大,所以對(duì)Windows2000操作系統(tǒng)來(lái)說(shuō),在IPSec過(guò)濾拒絕掉1434端口的UDP通訊,可以盡可能地隱藏你的SQLServer。10、對(duì)網(wǎng)絡(luò)連接進(jìn)行IP限制SQLServer2000數(shù)據(jù)庫(kù)系統(tǒng)本身沒(méi)有提供網(wǎng)絡(luò)連接的安全解決法,但是Windows2000提供了這樣的安全機(jī)制。使用操作系統(tǒng)自己的IPSec可以實(shí)現(xiàn)IP數(shù)據(jù)包的安全性。請(qǐng)對(duì)IP連接進(jìn)行限制,只保證自己的IP能夠訪問(wèn),也拒絕其他IP進(jìn)行的端口連接,把來(lái)自網(wǎng)絡(luò)上的安全威脅進(jìn)行有效的控制。
目前,針對(duì)SQL Server數(shù)據(jù)庫(kù)的應(yīng)用級(jí)入侵已經(jīng)變得越來(lái)越肆無(wú)忌憚,像SQL注入、跨站點(diǎn)腳本攻擊和未經(jīng)授權(quán)的用戶訪問(wèn)等。所有這些入侵都有可能繞過(guò)前臺(tái)安全系統(tǒng)并對(duì)數(shù)據(jù)庫(kù)系統(tǒng)攻擊。對(duì)于數(shù)據(jù)庫(kù)管理來(lái)說(shuō),保護(hù)數(shù)據(jù)不受內(nèi)部和外部侵害是一項(xiàng)重要的工作。SQL Server 正日益廣泛的使用于各部門內(nèi)外,作為數(shù)據(jù)庫(kù)系統(tǒng)管理員,需要深入的理解SQL Server的安全性控制策略,以實(shí)現(xiàn)管理安全性的目標(biāo)。那么,如何確保SQL Server數(shù)據(jù)庫(kù)的安全性呢,我們可以從以下兩方面考慮。it培訓(xùn)機(jī)構(gòu)
首先、采取業(yè)界已存在的且比較成熟的數(shù)據(jù)庫(kù)審計(jì)解決方案來(lái)實(shí)現(xiàn)
實(shí)時(shí)記錄用戶對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的所有操作(如:插入、刪除、更新、用戶自定義操作等),并還原SQL操作命令包括源IP地址、目的IP地址、訪問(wèn)時(shí)間、用戶名、數(shù)據(jù)庫(kù)操作類型、數(shù)據(jù)庫(kù)表名、字段名等,如此,可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)安全事件準(zhǔn)確全程跟蹤定位。
實(shí)時(shí)檢查數(shù)據(jù)庫(kù)不安全配置、數(shù)據(jù)庫(kù)潛在弱點(diǎn)、數(shù)據(jù)庫(kù)用戶弱口令、數(shù)據(jù)庫(kù)軟件補(bǔ)丁層次、數(shù)據(jù)庫(kù)潛藏木馬等。
進(jìn)行全方位的多層(應(yīng)用層、中間層、數(shù)據(jù)庫(kù)層)的訪問(wèn)審計(jì),通過(guò)多層業(yè)務(wù)審計(jì),實(shí)現(xiàn)數(shù)據(jù)操作原始訪問(wèn)者的精確定位。
針對(duì)于數(shù)據(jù)庫(kù)的操作行為進(jìn)行實(shí)時(shí)檢測(cè),并預(yù)設(shè)置風(fēng)險(xiǎn)控制策略,結(jié)合對(duì)數(shù)據(jù)庫(kù)活動(dòng)的實(shí)時(shí)監(jiān)控信息,進(jìn)行特征檢測(cè),任何嘗試性的攻擊操作都將被檢測(cè)到并進(jìn)行阻斷或告警;并支持通過(guò)郵件、短信、SYSLOG、SNMP、屏幕等方式告警。
其次、制定相關(guān)的數(shù)據(jù)庫(kù)管理流程
不同的人員對(duì)數(shù)據(jù)庫(kù)的操作職責(zé)不一樣,所有人員對(duì)數(shù)據(jù)庫(kù)的操作均需要事前審批,對(duì)一些非常重要的操作需要二級(jí)以上審批。申請(qǐng)操作時(shí),需明確在什么人,什么時(shí)間,因?yàn)楹问拢瑢?duì)哪個(gè)數(shù)據(jù)庫(kù)(或表),進(jìn)行什么樣的操作,可能有什么樣的風(fēng)險(xiǎn)及采取的補(bǔ)救措施等。
數(shù)據(jù)庫(kù)數(shù)據(jù)的丟失以及數(shù)據(jù)庫(kù)被非法用戶的侵入使得數(shù)據(jù)庫(kù)管理員身心疲憊不堪,數(shù)據(jù)庫(kù)安全性問(wèn)題對(duì)于數(shù)據(jù)庫(kù)管理員來(lái)說(shuō)簡(jiǎn)直就是噩夢(mèng)。對(duì)于數(shù)據(jù)庫(kù)數(shù)據(jù)的安全問(wèn)題。本文對(duì)圍繞數(shù)據(jù)庫(kù)的安全性問(wèn)題提出了一些安全性策略,希望對(duì)數(shù)據(jù)庫(kù)管理員有所幫助。
Microsoft建立了一種既靈活又強(qiáng)大的安全管理機(jī)制,它能夠?qū)τ脩粼L問(wèn)SQL Server服務(wù)器系統(tǒng)和數(shù)據(jù)庫(kù)的安全進(jìn)行全面地管理。按照本文介紹的步驟,你可以為SQL Server 7.0(或2000)構(gòu)造出一個(gè)靈活的、可管理的安全策略,而且它的安全性經(jīng)得起考驗(yàn)。
一、驗(yàn)證方法選擇
本文對(duì)驗(yàn)證(authentication)和授權(quán)(authorization)這兩個(gè)概念作不同的解釋。驗(yàn)證是指檢驗(yàn)用戶的身份標(biāo)識(shí);授權(quán)是指 允許用戶做些什么。在本文的討論中,驗(yàn)證過(guò)程在用戶登錄SQL Server的時(shí)候出現(xiàn),授權(quán)過(guò)程在用戶試圖訪問(wèn)數(shù)據(jù)或執(zhí)行命令的時(shí)候出現(xiàn)。
構(gòu)造安全策略的第一個(gè)步驟是確定SQL Server用哪種方式驗(yàn)證用戶。SQL Server的驗(yàn)證是把一組帳戶、密碼與Master數(shù)據(jù)庫(kù)Sysxlogins表中的一個(gè)清單進(jìn)行匹配。Windows NT/2000的驗(yàn)證是請(qǐng)求域控制器檢查用戶身份的合法性。一般地,如果服務(wù)器可以訪問(wèn)域控制器,我們應(yīng)該使用Windows NT/2000驗(yàn)證。域控制器可以是Win2K服務(wù)器,也可以是NT服務(wù)器。無(wú)論在哪種情況下,SQL Server都接收到一個(gè)訪問(wèn)標(biāo)記(Access Token)。訪問(wèn)標(biāo)記是在驗(yàn)證過(guò)程中構(gòu)造出來(lái)的一個(gè)特殊列表,其中包含了用戶的SID(安全標(biāo)識(shí)號(hào))以及一系列用戶所在組的SID。正如本文后面所介紹 的,SQL Server以這些SID為基礎(chǔ)授予訪問(wèn)權(quán)限。注意,操作系統(tǒng)如何構(gòu)造訪問(wèn)標(biāo)記并不重要,SQL Server只使用訪問(wèn)標(biāo)記中的SID。也就是說(shuō),不論你使用SQL Server 2000、SQL Server 7.0、Win2K還是NT進(jìn)行驗(yàn)證都無(wú)關(guān)緊要,結(jié)果都一樣。
如果使用SQL Server驗(yàn)證的登錄,它最大的好處是很容易通過(guò)Enterprise Manager實(shí)現(xiàn),最大的缺點(diǎn)在于SQL Server驗(yàn)證的登錄只對(duì)特定的服務(wù)器有效,也就是說(shuō),在一個(gè)多服務(wù)器的環(huán)境中管理比較困難。使用SQL Server進(jìn)行驗(yàn)證的第二個(gè)重要的缺點(diǎn)是,對(duì)于每一個(gè)數(shù)據(jù)庫(kù),我們必須分別地為它管理權(quán)限。如果某個(gè)用戶對(duì)兩個(gè)數(shù)據(jù)庫(kù)有相同的權(quán)限要求,我們必須手工設(shè) 置兩個(gè)數(shù)據(jù)庫(kù)的權(quán)限,或者編寫(xiě)腳本設(shè)置權(quán)限。如果用戶數(shù)量較少,比如25個(gè)以下,而且這些用戶的權(quán)限變化不是很頻繁,SQL Server驗(yàn)證的登錄或許適用。但是,在幾乎所有的其他情況下(有一些例外情況,例如直接管理安全問(wèn)題的應(yīng)用),這種登錄方式的管理負(fù)擔(dān)將超過(guò)它的優(yōu) 點(diǎn)。
二、Web環(huán)境中的驗(yàn)證
即使最好的安全策略也常常在一種情形前屈服,這種情形就是在Web應(yīng)用中使用SQL Server的數(shù)據(jù)。在這種情形下,進(jìn)行驗(yàn)證的典型方法是把一組SQL Server登錄名稱和密碼嵌入到Web服務(wù)器上運(yùn)行的程序,比如ASP頁(yè)面或者CGI腳本;然后,由Web服務(wù)器負(fù)責(zé)驗(yàn)證用戶,應(yīng)用程序則使用它自己的 登錄帳戶(或者是系統(tǒng)管理員sa帳戶,或者為了方便起見(jiàn),使用Sysadmin服務(wù)器角色中的登錄帳戶)為用戶訪問(wèn)數(shù)據(jù)。
這種安排有幾個(gè)缺點(diǎn),其中最重要的包括:它不具備對(duì)用戶在服務(wù)器上的活動(dòng)進(jìn)行審核的能力,完全依賴于Web應(yīng)用程序?qū)崿F(xiàn)用戶驗(yàn)證,當(dāng)SQL Server需要限定用戶權(quán)限時(shí)不同的用戶之間不易區(qū)別。如果你使用的是IIS 5.0或者IIS 4.0,你可以用四種方法驗(yàn)證用戶。第一種方法是為每一個(gè)網(wǎng)站和每一個(gè)虛擬目錄創(chuàng)建一個(gè)匿名用戶的NT帳戶。此后,所有應(yīng)用程序登錄SQL Server時(shí)都使用該安全環(huán)境。我們可以通過(guò)授予NT匿名帳戶合適的權(quán)限,改進(jìn)審核和驗(yàn)證功能。
第二種方法是讓所有網(wǎng)站使用Basic驗(yàn)證。此時(shí),只有當(dāng)用戶在對(duì)話框中輸入了合法的帳戶和密碼,IIS才會(huì)允許他們?cè)L問(wèn)頁(yè)面。IIS依靠一個(gè)NT 安全數(shù)據(jù)庫(kù)實(shí)現(xiàn)登錄身份驗(yàn)證,NT安全數(shù)據(jù)庫(kù)既可以在本地服務(wù)器上,也可以在域控制器上。當(dāng)用戶運(yùn)行一個(gè)訪問(wèn)SQL Server數(shù)據(jù)庫(kù)的程序或者腳本時(shí),IIS把用戶為了瀏覽頁(yè)面而提供的身份信息發(fā)送給服務(wù)器。如果你使用這種方法,應(yīng)該記住:在通常情況下,瀏覽器與服 務(wù)器之間的密碼傳送一般是不加密的,對(duì)于那些使用Basic驗(yàn)證而安全又很重要的網(wǎng)站,你必須實(shí)現(xiàn)SSL(Secure Sockets Layer,安全套接字層)。
在客戶端只使用IE 5.0、IE 4.0、IE 3.0瀏覽器的情況下,你可以使用第三種驗(yàn)證方法。你可以在Web網(wǎng)站上和虛擬目錄上都啟用NT驗(yàn)證。IE會(huì)把用戶登錄計(jì)算機(jī)的身份信息發(fā)送給IIS,當(dāng) 該用戶試圖登錄SQL Server時(shí)IIS就使用這些登錄信息。使用這種簡(jiǎn)化的方法時(shí),我們可以在一個(gè)遠(yuǎn)程網(wǎng)站的域上對(duì)用戶身份進(jìn)行驗(yàn)證(該遠(yuǎn)程網(wǎng)站登錄到一個(gè)與運(yùn)行著Web 服務(wù)器的域有著信任關(guān)系的域)。
最后,如果用戶都有個(gè)人數(shù)字證書(shū),你可以把那些證書(shū)映射到本地域的NT帳戶上。個(gè)人數(shù)字證書(shū)與服務(wù)器數(shù)字證書(shū)以同樣的技術(shù)為基礎(chǔ),它證明用戶身份標(biāo) 識(shí)的合法性,所以可以取代NT的Challenge/Response(質(zhì)詢/回應(yīng))驗(yàn)證算法。Netscape和IE都自動(dòng)在每一個(gè)頁(yè)面請(qǐng)求中把證書(shū)信 息發(fā)送給IIS。IIS提供了一個(gè)讓管理員把證書(shū)映射到NT帳戶的工具。因此,我們可以用數(shù)字證書(shū)取代通常的提供帳戶名字和密碼的登錄過(guò)程。
由此可見(jiàn),通過(guò)NT帳戶驗(yàn)證用戶時(shí)我們可以使用多種實(shí)現(xiàn)方法。即使當(dāng)用戶通過(guò)IIS跨越Internet連接SQL Server時(shí),選擇仍舊存在。因此,你應(yīng)該把NT驗(yàn)證作為首選的用戶身份驗(yàn)證辦法。
三、設(shè)置全局組
構(gòu)造安全策略的下一個(gè)步驟是確定用戶應(yīng)該屬于什么組。通常,每一個(gè)組織或應(yīng)用程序的用戶都可以按照他們對(duì)數(shù)據(jù)的特定訪問(wèn)要求分成許多類別。例如,會(huì) 計(jì)應(yīng)用軟件的用戶一般包括:數(shù)據(jù)輸入操作員,數(shù)據(jù)輸入管理員,報(bào)表編寫(xiě)員,會(huì)計(jì)師,審計(jì)員,財(cái)務(wù)經(jīng)理等。每一組用戶都有不同的數(shù)據(jù)庫(kù)訪問(wèn)要求。
兩種安全模式:
Windows 認(rèn)證模式:用戶通過(guò)一個(gè)現(xiàn)成的Windows用戶帳號(hào)來(lái)連接服務(wù)器。當(dāng)一個(gè)用戶試圖與一個(gè)服務(wù)器連接的時(shí)候,SQL Server將會(huì)認(rèn)證用戶的Windows帳號(hào)的名稱和密碼。用戶不能同時(shí)進(jìn)入網(wǎng)絡(luò)和SQL Server,只能進(jìn)入其中的一個(gè)。這一方法也被稱為一個(gè)被依賴的連接。
混合模式:這一模式將Windows認(rèn)證模式和SQL Server認(rèn)證聯(lián)接在一起。用戶可以通過(guò)一個(gè)Windows用戶帳號(hào)進(jìn)行連接,這正如Windows認(rèn)證一樣。但是,你也可以在SQL Server中直接建立用戶帳號(hào)。每一個(gè)SQL Server帳號(hào)都存儲(chǔ)了一個(gè)用戶名和密碼。
我們建議在可能的情況下都使用Windows認(rèn)證模式。然而,混合模式很可以使用,特別是在SQL Server 7.0(或更早版本)都可以使用。.對(duì)于早期的SQL Server版本,SQL Server認(rèn)證存在一些缺點(diǎn)。Windows認(rèn)證已經(jīng)集成了操作系統(tǒng)的安全系統(tǒng),這就提供了比SQL Server認(rèn)證更多的安全特性,很容易的使用,效率更加高,安全性更加好。在設(shè)計(jì)開(kāi)始的時(shí)候,你應(yīng)該認(rèn)真考慮選擇哪一種模式最為合適。
密碼
無(wú)論采用哪一些模式,你應(yīng)該記住在SQL Server中為系統(tǒng)管理者(sa)設(shè)置一個(gè)密碼。當(dāng)安裝SQL Server時(shí),安裝程序會(huì)自動(dòng)建立一個(gè)帶有SQL Server注冊(cè)名稱(sa)和一個(gè)空白密碼的管理用戶。如果你保持這些用戶設(shè)置原樣而使用混合安全模式,任何具備一點(diǎn)SQL Server基礎(chǔ)知識(shí)的用戶都可以很容易地進(jìn)入到你的數(shù)據(jù)庫(kù)中并做任何他想要做的事情。如果你使用的是Windows認(rèn)證模式,在理論上你無(wú)需為sa用戶設(shè)置一個(gè)密碼,因?yàn)镾QL Server注冊(cè)不會(huì)接受這些的設(shè)置。但是設(shè)置是一個(gè)很良好的操作,尤其是當(dāng)你被迫轉(zhuǎn)移到將來(lái)使用的混合模式的時(shí)候。
如果安全模式已經(jīng)啟動(dòng),注冊(cè)將成為關(guān)鍵。你必須使用正確的.方法來(lái)啟動(dòng)程序,注冊(cè)也是同樣的,如果你不能正確地輸入用戶名和密碼,程序?qū)⒉荒苓B接到網(wǎng)絡(luò),同時(shí)也不能連接到SQL Server。
作為一個(gè)管理者,一旦你已經(jīng)啟動(dòng)了程序,你就做好安全管理的準(zhǔn)備。可以通過(guò)定義以下的特性而實(shí)現(xiàn):
用戶(帳號(hào)):一個(gè)SQL Serve安全帳號(hào)代表著一個(gè)唯一的用戶。一個(gè)用戶也只有一個(gè)Windows帳號(hào)或者一個(gè)SQL Server注冊(cè),這與數(shù)據(jù)庫(kù)中的用戶帳號(hào)相統(tǒng)一。
組(帳號(hào)):每一個(gè)用戶都屬于一個(gè)或多個(gè)組,這由認(rèn)證模式?jīng)Q定。每一個(gè)組都具有特定許可。作為一個(gè)組的成員,你將獲得所有組的許可。
對(duì)象所有權(quán):所有權(quán)屬于建立對(duì)象的用戶。所有者可以將訪問(wèn)權(quán)限分配給用戶。如果你是一個(gè)視的所有者,你還可以決定哪些用戶可以通過(guò)視來(lái)查看數(shù)據(jù)。
許可:一個(gè)許可代表著具有執(zhí)行某些操作的權(quán)利,比如打開(kāi)一個(gè)視或者更改一個(gè)存儲(chǔ)程序。SQL Server承認(rèn)許可的三種狀態(tài):GRANT給你一個(gè)用戶訪問(wèn);REVOKE刪除訪問(wèn);DENY防止用戶訪問(wèn)對(duì)象。
任務(wù):這是一個(gè)SQL Server安全帳號(hào),可以將帳號(hào)的集合作為一個(gè)簡(jiǎn)單的單元來(lái)處理。任務(wù)定義在特定數(shù)據(jù)庫(kù)中用戶可以做哪些和哪些不可以做。
設(shè)計(jì)過(guò)程應(yīng)該用效地定義哪些地方需要進(jìn)行安全設(shè)置和如何設(shè)置。在這一過(guò)程之前你應(yīng)該從兩個(gè)方面考慮:
敏感數(shù)據(jù);
敏感數(shù)據(jù)包括所有可能的數(shù)據(jù),包括整個(gè)數(shù)據(jù)庫(kù)中的所有數(shù)據(jù),雖然這樣的安全級(jí)別很少存在。你的工作就是定義為敏感數(shù)據(jù)并進(jìn)行保護(hù)。
你選擇的認(rèn)證模式和建立的注冊(cè)將通過(guò)限制哪些用戶可以進(jìn)入到數(shù)據(jù)庫(kù)而實(shí)施第一步安全步驟。
第二步就要列舉可以訪問(wèn)數(shù)據(jù)庫(kù)的所有用戶,然后決定所有數(shù)據(jù)是否對(duì)所有的用戶都適用。通常,你需要對(duì)一些數(shù)據(jù)進(jìn)行保護(hù),比如工資或者其他私人數(shù)據(jù)。這就意味著只有特定的用戶可以訪問(wèn)和查看數(shù)據(jù)。你還可以設(shè)置哪些用戶更改數(shù)據(jù)。
始終記住的一條規(guī)則是“最小權(quán)利”概念。如果有人在他的工作中不需要訪問(wèn)數(shù)據(jù),那即不要給他訪問(wèn)的權(quán)限。應(yīng)該避免所有的用戶都具有sa用戶的訪問(wèn)權(quán)限。
具體的建議
當(dāng)進(jìn)行安全設(shè)置的時(shí)候,經(jīng)驗(yàn)也是一個(gè)很好的老師,但通常也會(huì)有適用于通用數(shù)據(jù)庫(kù)的設(shè)計(jì)準(zhǔn)則
從開(kāi)始就獲得數(shù)據(jù)庫(kù)和對(duì)象的所有權(quán)。當(dāng)建立一個(gè)新的數(shù)據(jù)庫(kù)時(shí),你將會(huì)成為數(shù)據(jù)庫(kù)的所有者,并能夠設(shè)置數(shù)據(jù)庫(kù)中所有發(fā)生一切。你可以以管理者的身份注冊(cè)數(shù)據(jù)庫(kù)。然而,對(duì)象的所有權(quán)屬于建立對(duì)象的用戶。雖然這可能造成所有權(quán)的轉(zhuǎn)移,但可以確定這些的注冊(cè)能夠被用于建立所有的對(duì)象。
理解所有權(quán)鏈。這一安全特性防止用戶建立自己的視而偷看一些敏感數(shù)據(jù)。例如,假設(shè)你建立一個(gè)從兩個(gè)表中集中的數(shù)據(jù)的視,如果你是這兩個(gè)表的所有者,當(dāng)你允許其他用戶使用視的許可時(shí),SQL Server不會(huì)檢查表的有關(guān)許可。
使用視和存儲(chǔ)程序以分配給用戶訪問(wèn)數(shù)據(jù)的權(quán)利,而不是讓用戶編寫(xiě)一些直接訪問(wèn)表格的特別查詢語(yǔ)句。通過(guò)這種方式,你無(wú)需在表格中將訪問(wèn)權(quán)利分配給用戶。視和存儲(chǔ)程序
也可以限制查看的數(shù)據(jù)。例如,如果你的雇員表格包含一些秘密的工資信息,你可以建立一個(gè)省略了工資欄的視。
如果用戶從特定程序中進(jìn)入你的程序,你可以建立程序任務(wù)。一個(gè)程序任務(wù)就是分配到特定程序的用戶,并給予用戶的有關(guān)許可。使用程序任務(wù),用戶不能直接地認(rèn)證數(shù)據(jù)庫(kù),相反,他們先認(rèn)證他們自己的程序,這就決定哪些程序任務(wù)與服務(wù)器相連接。
時(shí)刻注意程序補(bǔ)丁。不可否認(rèn)的,程序補(bǔ)丁是一些訣竅的集合。程序的發(fā)布,更新等都會(huì)引入新的問(wèn)題,使用程序補(bǔ)丁是防止外界干擾和保護(hù)數(shù)據(jù)的最好和最容易的方法。可以訪問(wèn)微軟主頁(yè)上的SQL Service Pack下載頁(yè),查看當(dāng)前最新的程序補(bǔ)丁。
當(dāng)前名稱:sqlserver安全,sqlserver安全審計(jì)
標(biāo)題來(lái)源:http://m.kartarina.com/article6/hdhdog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站建設(shè)、網(wǎng)站改版、App開(kāi)發(fā)、網(wǎng)站排名、定制網(wǎng)站、手機(jī)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)