sql server 2008(MSSQL2008)或者R2安全設(shè)置詳細(xì)教程(可以獨(dú)立運(yùn)行于某賬戶)
[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!
服務(wù)器身份驗(yàn)證
MSSQL Server 2008的身份驗(yàn)證模式有兩種:一種是Windows 身份驗(yàn)證模式, 另一種是SQL Server和Windows身份驗(yàn)證模式(即混合模式)。對(duì)大多數(shù)數(shù)據(jù)庫(kù)服務(wù)器來(lái)說(shuō),有SQL Server身份驗(yàn)證就足夠了,只可惜目前的服務(wù)器身份驗(yàn)證模式里沒(méi)有這個(gè)選項(xiàng),所以我們只能選擇同時(shí)帶有SQL Server和Windows身份驗(yàn)證的模式(混合模式)。但這樣就帶來(lái)了兩個(gè)問(wèn)題:
1、混合模式里包含了Windows身份驗(yàn)證這個(gè)我們所不需要的模式,即設(shè)置上的冗余性。程序的安全性是與冗余性成反比的。
2、所謂Windows身份驗(yàn)證,實(shí)際上就是通過(guò)當(dāng)前Windows管理員帳戶(通常為Administrator)的登錄憑據(jù)來(lái)登錄MSSQL Server。使用Windows身份驗(yàn)證,會(huì)增加Administrator密碼被盜的風(fēng)險(xiǎn)。
為解決以上兩個(gè)問(wèn)題,我們需要限制混合模式里的Windows身份驗(yàn)證。方法如下:
打開(kāi)Microsoft SQL Server Management Studio,點(diǎn)擊安全性->登錄名,將Administrator對(duì)應(yīng)的登錄名刪除即可。
SQL Server服務(wù)的運(yùn)行身份
默認(rèn)情況下,SQL Server服務(wù)是以本地系統(tǒng)的身份運(yùn)行的。也就是說(shuō),SQL Server服務(wù)進(jìn)程對(duì)系統(tǒng)擁有一切操作的權(quán)限,這是很不安全的。因此,我們需要將SQL Server服務(wù)的運(yùn)行身份修改為普通用戶:
1、新建一個(gè)普通用戶,如mssqluser,將此用戶加入以下兩組:
SQLServerMSSQLUser
SQLServerSQLAgentUser
2、授予C盤(pán)mssqluser用戶的讀取權(quán)限,D、E等其他分區(qū)mssqluser用戶的修改權(quán)限,mssql安裝目錄(如D:/Program Files/Microsoft SQL Server),數(shù)據(jù)庫(kù)文件存放目錄(如D:/mssqldata)mssqluser用戶的完全控制權(quán)限。
3、將SQL Full-text Filter Daemon Launcher (MSSQLSERVER) SQL Server (MSSQLSERVER)服務(wù)的登錄修改為mssqluser用戶,然后重啟這兩個(gè)服務(wù)。
sa密碼的安全性
很多數(shù)據(jù)庫(kù)服務(wù)器管理員都會(huì)發(fā)現(xiàn),總有人會(huì)樂(lè)此不疲地去破解sa密碼。因此,將sa密碼BT化就變成不可或缺的一步設(shè)置。另外,我們可以將sa重命名為 sa1,sa2,sa3...之類的用戶,這樣可以進(jìn)一步提高sa密碼的安全性。修改之后,不要忘了更新有使用sa密碼的管理程序
sqlserver安裝性無(wú)疑是最重要的,不僅導(dǎo)致網(wǎng)站上SQL注入很?chē)?yán)重,而且還可能危及服務(wù)器控制權(quán)
下面為各位自己安裝了sql軟件的朋友介紹常見(jiàn)的安全設(shè)置
修改SA用戶名:
1:打開(kāi)查詢分析器,登陸進(jìn)去(呵呵,隨便你用什么帳號(hào)進(jìn)去,不過(guò)可一定要在master數(shù)據(jù)庫(kù)中有db_owner的權(quán)限)輸入
?代碼如下 | 復(fù)制代碼 |
sp_configure 'allow updates', 1
go RECONFIGURE WITH OVERRIDE go 然后再運(yùn)行以下代碼 update sysxlogins set name='你要改成的名字' where sid=0x01 update sysxlogins set sid=0xE765555BD44F054F89CD0076A06EA823 where name='你要改成的名字' sp_configure 'allow updates', 0 go RECONFIGURE WITH OVERRIDE go |
然后,你查看一下SQL SERVER的角色,就會(huì)發(fā)現(xiàn)SA的用戶名,已經(jīng)改為你的新名子了。
1、修改1433端口,至于如何修改sql的端口
點(diǎn)擊“開(kāi)始-程序-Microsoft SQL Server-服務(wù)器網(wǎng)絡(luò)實(shí)用工具”
在“啟用的協(xié)議”中選中“TCP/IP”,點(diǎn)擊“屬性”:
輸入新的默認(rèn)端口號(hào),點(diǎn)擊“確定”:
點(diǎn)擊“確定”。
修改在網(wǎng)站的數(shù)據(jù)庫(kù)連接IP中填寫(xiě) localhost,端口號(hào) 即可正常連接
2、不允許外部企業(yè)管理器或者其他工具連接1433端口
在本地安全策略中設(shè)置不允許非服務(wù)器上的IP連接SQL數(shù)據(jù)庫(kù),請(qǐng)將附件中的規(guī)則導(dǎo)入到本地安全策略中,指派即可
本安全策略為虛擬主機(jī)空間商必備策略,經(jīng)過(guò)考驗(yàn)(修改后1433端口后SQL封鎖無(wú)效,但還是可以大大增加服務(wù)器安全性)
3、卸載SQL的不安全組件
Xp_cmdshell(這個(gè)肯定首當(dāng)其沖,不用說(shuō)了)、Xp_regaddmultistring、Xp_regdeletekey、 Xp_regdeletevalue、Xp_regenumvalues、Xp_regread、Xp_regwrite、 Xp_regremovemultistring
在SQL查詢器中輸入命令卸載:刪除xp_dirtree,命令是sp_dropextendedproc 'xp_dirtree'
4、權(quán)限設(shè)置
首先在計(jì)算機(jī)管理中新建一個(gè)隸屬于users組的普通用戶用來(lái)作為MSSQL的運(yùn)行用戶。
其次數(shù)據(jù)庫(kù)應(yīng)該單獨(dú)安裝在一個(gè)非C盤(pán),非網(wǎng)站目錄盤(pán)中,(假設(shè)您的數(shù)據(jù)安裝在E:/Program Files/Microsoft SQL Server/)
E盤(pán)的根目錄(E:/)需要以下權(quán)限:
“administrators ”的全部權(quán)限
“System ”的全部權(quán)限
“SQL的運(yùn)行用戶設(shè)置“讀取”和“讀取和運(yùn)行”兩個(gè)權(quán)限,并且在高級(jí)里設(shè)置為(只應(yīng)用在當(dāng)前文件夾)
數(shù)據(jù)庫(kù)的安裝目錄(E:/Program Files/Microsoft SQL Server/)需要以下權(quán)限:
“administrators ”的全部權(quán)限
“System ”的全部權(quán)限
“SQL的運(yùn)行用戶 ”的全部權(quán)限
數(shù)據(jù)庫(kù)用普通權(quán)限運(yùn)行辦法
企業(yè)管理器 — local — 點(diǎn)擊右鍵查看“屬性”,切換至“安全性”
經(jīng)過(guò)上述設(shè)置好SQL基本可以保持在一個(gè)很好的安全狀態(tài),另外網(wǎng)站的安全也一定要做好,否則通過(guò)其他途徑入侵了也枉然
建議自有服務(wù)器用戶安裝N點(diǎn)或者西部數(shù)碼安全助手,便于網(wǎng)站安全
最后還給大家加一些安全常識(shí)
1、使用安全的密碼策略
我們把密碼策略擺在所有安全設(shè)置的第一步,請(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)用程式或腳本中。健壯的密碼是安全的第一步!
SQL Server2000安裝的時(shí)候,如果是使用混合模式,那么就需要輸入sa的密碼,除非你確認(rèn)必須使用空密碼。這比以前的版本有所改進(jìn)。
同時(shí)養(yǎng)成定期修改密碼的好習(xí)慣。數(shù)據(jù)庫(kù)管理員應(yīng)該定期查看是否有不符合密碼需求的帳號(hào)。比如使用下面的SQL語(yǔ)句:
?代碼如下 | 復(fù)制代碼 |
Use master Select name,Password from syslogins where password is null |
2、使用安全的帳號(hào)策略。
由于SQL Server不能更改sa用戶名稱,也不能刪除這個(gè)終極用戶,所以,我們必須對(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)有其他方法登錄到 SQL Server 實(shí)例(例如,當(dāng)其他系統(tǒng)管理員不可用或忘記了密碼)時(shí)才使用 sa。建議數(shù)據(jù)庫(kù)管理員新建立一個(gè)擁有和sa相同權(quán)限的終極用戶來(lái)管理數(shù)據(jù)庫(kù)。安全的帳號(hào)策略還包括不要讓管理員權(quán)限的帳號(hào)泛濫。
SQL Server的認(rèn)證模式有視窗系統(tǒng)身份認(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)日志里面,就周詳記錄了所有帳號(hào)的登錄事件。
請(qǐng)定期查看SQL Server日志檢查是否有可疑的登錄事件發(fā)生,或使用DOS命令。
?代碼如下 | 復(fù)制代碼 |
findstr /C:"登錄" d:\Microsoft SQL Server\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ò)程,而SQL Server的這么多系統(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)行破壞。
如果你不必?cái)U(kuò)展存儲(chǔ)過(guò)程xp_cmdshell請(qǐng)把他去掉。使用這個(gè)SQL語(yǔ)句:
?代碼如下 | 復(fù)制代碼 |
use master sp_dropextendedproc ’xp_cmdshell’ |
xp_cmdshell是進(jìn)入操作系統(tǒng)的最佳捷徑,是數(shù)據(jù)庫(kù)留給操作系統(tǒng)的一個(gè)大后門(mén)。如果你需要這個(gè)存儲(chǔ)過(guò)程,請(qǐng)用這個(gè)語(yǔ)句也能恢復(fù)過(guò)來(lái)。
?代碼如下 | 復(fù)制代碼 |
sp_addextendedproc ’xp_cmdshell’, ’xpsql70.dll’ |
如果你不必請(qǐng)丟棄OLE自動(dòng)存儲(chǔ)過(guò)程(會(huì)造成管理器中的某些特征不能使用),這些過(guò)程包括如下:
?代碼如下 | 復(fù)制代碼 |
Sp_OACreate Sp_OADestroy Sp_OAGetErrorInfo Sp_OAGetProperty Sp_OAMethod Sp_OASetProperty Sp_OAStop |
去掉不必的注冊(cè)表訪問(wèn)的存儲(chǔ)過(guò)程,注冊(cè)表存儲(chǔ)過(guò)程甚至能夠讀出操作系統(tǒng)管理員的密碼來(lái),如下:
?代碼如下 | 復(fù)制代碼 |
Xp_regaddmultistring Xp_regdeletekey Xp_regdeletevalue Xp_regenumvalues Xp_regread Xp_regremovemultistring Xp_regwrite |
更有一些其他的擴(kuò)展存儲(chǔ)過(guò)程,你也最佳檢查檢查。
在處理存儲(chǔ)過(guò)程的時(shí)候,請(qǐng)確認(rèn)一下,避免造成對(duì)數(shù)據(jù)庫(kù)或應(yīng)用程式的傷害。
5、使用協(xié)議加密
SQL Server 2000使用的Tabular Data Stream協(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)情況下,SQL Server使用1433端口監(jiān)聽(tīng),非常多人都說(shuō)SQL Server設(shè)置的時(shí)候要把這個(gè)端口改動(dòng),這樣別人就不能非常容易地知道使用的什么端口了。可惜,通過(guò)微軟未公開(kāi)的1434端口的UDP探測(cè)能非常容易知 道SQL Server使用的什么TCP/IP端口了。
不過(guò)微軟還是考慮到了這個(gè)問(wèn)題,畢竟公開(kāi)而且開(kāi)放的端口會(huì)引起不必要的麻煩。在實(shí)例屬性中選擇TCP/IP協(xié)議的屬性。選擇隱藏 SQL Server 實(shí)例。如果隱藏了 SQL Server 實(shí)例,則將禁止對(duì)試圖枚舉網(wǎng)絡(luò)上現(xiàn)有的 SQL Server 實(shí)例的客戶端所發(fā)出的廣播作出響應(yīng)。這樣,別人就不能用1434來(lái)探測(cè)你的TCP/IP端口了(除非用Port Scan)。
7、修改TCP/IP使用的端口
請(qǐng)?jiān)谏弦徊皆O(shè)置的基礎(chǔ)上,更改原默認(rèn)的1433端口。在實(shí)例屬性中選擇網(wǎng)絡(luò)設(shè)置中的TCP/IP協(xié)議的屬性,將TCP/IP使用的默認(rèn)端口變?yōu)槠渌丝凇?/p>
8、拒絕來(lái)自1434端口的探測(cè)
由于1434端口探測(cè)沒(méi)有限制,能夠被別人探測(cè)到一些數(shù)據(jù)庫(kù)信息,而且還可能遭到DOS攻擊讓數(shù)據(jù)庫(kù)服務(wù)器的CPU負(fù)荷增大,所以對(duì)視窗系統(tǒng) 2000操作系統(tǒng)來(lái)說(shuō),在IPSec過(guò)濾拒絕掉1434端口的UDP通訊,能盡可能地隱藏你的SQL Server。
9、對(duì)網(wǎng)絡(luò)連接進(jìn)行IP限制
SQL Server 2000數(shù)據(jù)庫(kù)系統(tǒng)本身沒(méi)有提供網(wǎng)絡(luò)連接的安全解決辦法,不過(guò)視窗系統(tǒng) 2000提供了這樣的安全機(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)行有效的控制。
問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信
所寫(xiě)所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!