摘要:論述了在C/S體系結(jié)構(gòu)下,基于Microsoft SQL Server 數(shù)據(jù)庫(kù),管理信息系統(tǒng)開(kāi)發(fā)所涉及的相關(guān)安全技術(shù),主要包括網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)、數(shù)據(jù)庫(kù)加密、數(shù)據(jù)備份與恢復(fù)、日志管理、事務(wù)處理技術(shù)合理使用等。
關(guān)鍵詞:管理系統(tǒng);客戶(hù)機(jī)/服務(wù)器;數(shù)據(jù)庫(kù)加密
中圖分類(lèi)號(hào):TP309文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)14-3605-02
The Application of Security Technology in MIS Design Based on C/S Architecture
MEI Feng
(Shaoxing University Computer Center,Shaoxing 312000,China)
Abstract: Under the C/S system architecture, this paper discourses the system security technology about MIS's development based on the Microsoft SQL Server database.The system security technology includes network topology, database encryption, database back-up and recovery, reasonable using of transaction processing technology.
Key words: management system; Client/Server; database encryption
1 引言
目前,電腦與網(wǎng)絡(luò)的使用越來(lái)越普遍,社會(huì)生活方式、工作方式發(fā)生了巨大的變化,人們對(duì)管理信息系統(tǒng)的依賴(lài)程度日益加深。許多管理信息系統(tǒng)不僅僅管理數(shù)據(jù),還管理企業(yè)的業(yè)務(wù)過(guò)程。人們對(duì)數(shù)據(jù)安全的關(guān)注度不斷增加。系統(tǒng)安全,尤其是保障數(shù)據(jù)的安全是在構(gòu)建管理信息系統(tǒng)的過(guò)程中應(yīng)重點(diǎn)考慮的問(wèn)題之一。
2 安全技術(shù)
2.1 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
Client/Server結(jié)構(gòu)模式近年來(lái)不斷成熟和被廣泛應(yīng)用,這種結(jié)構(gòu)體系合理分配了數(shù)據(jù)的表現(xiàn)功能,數(shù)據(jù)庫(kù)存取功能及數(shù)據(jù)處理功能,它充分發(fā)揮了Client和Server各自的特點(diǎn)。[1]
把數(shù)據(jù)庫(kù)和服務(wù)端分別裝在不同服務(wù)器上,裝有服務(wù)端的服務(wù)器可以考慮用雙網(wǎng)卡并配置成不同網(wǎng)段,其中一網(wǎng)卡接入客戶(hù)機(jī)的局域網(wǎng),另一網(wǎng)卡通過(guò)交換機(jī)與數(shù)據(jù)庫(kù)服務(wù)器相連。在此拓?fù)浣Y(jié)構(gòu)下客戶(hù)端對(duì)數(shù)據(jù)庫(kù)的操作由服務(wù)端代為完成??蛻?hù)端軟件復(fù)雜度得到極大降低,不必了解服務(wù)器訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的操作細(xì)節(jié),同時(shí)當(dāng)系統(tǒng)升級(jí)時(shí),如果服務(wù)器上的數(shù)據(jù)庫(kù)存儲(chǔ)位置和庫(kù)表結(jié)構(gòu)等情況有所變動(dòng),客戶(hù)端軟件只須少量甚至不必改動(dòng)。因?yàn)楦骺蛻?hù)機(jī)上沒(méi)有本地?cái)?shù)據(jù)庫(kù),也不能直接訪(fǎng)問(wèn)服務(wù)器上的數(shù)據(jù)庫(kù),這就更加有利于保證數(shù)據(jù)的一致性和安全性。[2]
系統(tǒng)采用的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),如圖1。
2.2 數(shù)據(jù)庫(kù)選擇與加密
SQL Server屬于網(wǎng)絡(luò)版,可支持跨界的集團(tuán)公司異地使用數(shù)據(jù)庫(kù)的要求;節(jié)點(diǎn)多,支持多重路由器;管理權(quán)限劃分細(xì)致,對(duì)內(nèi)安全性高;數(shù)據(jù)庫(kù)劃分細(xì)致,對(duì)外防黑客能力高;并發(fā)處理能力方面能同時(shí)支持萬(wàn)人在線(xiàn)提交,在其它硬件例如網(wǎng)速等條件匹配的情況下可完全實(shí)現(xiàn);數(shù)據(jù)處理能力快等特點(diǎn)。[3]
加密技術(shù)是信息安全的基礎(chǔ),在安全領(lǐng)域都發(fā)揮著關(guān)鍵作用。在系統(tǒng)設(shè)計(jì)時(shí),不管采用什么數(shù)據(jù)庫(kù),對(duì)數(shù)據(jù)庫(kù)表里存放密碼(特別是管理員的密碼)的字段進(jìn)行有效的加密處理是非常有必要的,這樣即使密碼字段內(nèi)容被非法獲取也無(wú)法獲知原始密碼,保護(hù)了系統(tǒng)安全。數(shù)據(jù)加密算法有很多,各有所長(zhǎng)。其中,MD5就是一種非常優(yōu)秀的加密技術(shù),且使用它不需要支付任何版權(quán)費(fèi)用。MD5被廣泛用于加密解密技術(shù)上,如UNIX、各類(lèi)BSD系統(tǒng)登錄密碼、通信信息加密、數(shù)字簽名等諸多方面。
例如:“abc123”經(jīng)過(guò)MD5加密后的32位字符串為:“e99a18c428cb38d5f260853678922e03”
下面給出另外一種加密實(shí)現(xiàn)算法,非常簡(jiǎn)單有效,采用VB描述如下:
Public Function NewPswd(ByVal oldPswd As String, ByVal key As String) As String
Dim iKey As Byte
Dim tmpStr As String * 1
NewPswd = \"\"
Dim x As Byte, y As Byte, z As Byte
Dim iCount As Integer
For iCount = 1 To Len(Trim(oldPswd))
tmpStr = Left(oldPswd, 1)
oldPswd = Mid(oldPswd, 2)
x = Asc(key)
y = Asc(tmpStr)
z = x Xor y
NewPswd = NewPswd Chr(z)
Next
End Function
例如:str1=”abc123”那么NewPswd(str1,”a”))加密后的字符串為:“PSR”,NewPswd函數(shù)第二個(gè)參數(shù)根據(jù)需要可以變化出各不相同的密碼。
2.3 數(shù)據(jù)備份與恢復(fù)
管理系統(tǒng)是以數(shù)據(jù)庫(kù)為基礎(chǔ),所以數(shù)據(jù)的定時(shí)備份尤為重要。數(shù)據(jù)庫(kù)的大小和數(shù)據(jù)修改的頻率決定了采用何種數(shù)據(jù)庫(kù)備份恢復(fù)策略。如果數(shù)據(jù)庫(kù)較小或修改的頻度非常低,則可以只實(shí)施完全數(shù)據(jù)庫(kù)備份,不過(guò)此時(shí)要定期清理數(shù)據(jù)庫(kù)的事務(wù)日志,防止數(shù)據(jù)庫(kù)的事務(wù)日志被填滿(mǎn)。其它情況則需要使用差異備份。
SQL Server的一個(gè)優(yōu)勢(shì)就是對(duì)日常維護(hù)的要求比較低,但為了追求更高的可用性和安全性,建議每周做備份,同時(shí)注意將備份放在不同的備份媒體中,如多個(gè)硬盤(pán)。
使用SQL Server的“數(shù)據(jù)庫(kù)維護(hù)計(jì)劃”,按步驟創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)維護(hù)計(jì)劃,可以實(shí)現(xiàn)自動(dòng)備份調(diào)度,以及自動(dòng)刪除舊的數(shù)據(jù)備份,完全能夠滿(mǎn)足自動(dòng)備份要求。
對(duì)系統(tǒng)數(shù)據(jù)庫(kù)備份后,在一些無(wú)法避免數(shù)據(jù)破壞的情況下,可以通過(guò)數(shù)據(jù)還原功能從備份數(shù)據(jù)庫(kù)中將數(shù)據(jù)導(dǎo)入到工作數(shù)據(jù)庫(kù)中恢復(fù)數(shù)據(jù),減少損失。
2.4 日志管理
日志功能是對(duì)用戶(hù)和管理員的日常操作進(jìn)行記錄,其主要包括:系統(tǒng)管理員日志和用戶(hù)日志。系統(tǒng)管理員日志對(duì)于用戶(hù)的日常操作來(lái)說(shuō)非常重要,對(duì)于該系統(tǒng)來(lái)說(shuō)必不可少。由于本軟件主要是針對(duì)大眾上機(jī)進(jìn)行管理的,所以日常操作非常的多,有了系統(tǒng)日志,可以查詢(xún)系統(tǒng)的運(yùn)行狀況,以便在日常的維護(hù)中有案可查。日志功能對(duì)于監(jiān)控?cái)?shù)據(jù)庫(kù)安全方面具有重要的作用。
2.5 事務(wù)處理
事務(wù)是被作為一個(gè)邏輯單元而執(zhí)行的一系列操作,它具有以下特點(diǎn):原子性、一致性、獨(dú)立性和有效性。
如果你要對(duì)數(shù)據(jù)庫(kù)中多個(gè)表同時(shí)進(jìn)行修改,那么,我認(rèn)為事務(wù)處理是必需的。它能夠保證數(shù)據(jù)的完整性,即要么都修改,要么都不修改。在事務(wù)執(zhí)行期間,會(huì)對(duì)所操作的數(shù)據(jù)進(jìn)行一定程度的封鎖,不準(zhǔn)其它事務(wù)來(lái)干擾。如果事務(wù)處理的過(guò)程中出現(xiàn)了錯(cuò)誤,那么數(shù)據(jù)庫(kù)保持原始狀態(tài),因?yàn)橹挥袌?zhí)行到cnn.committrans時(shí)從cnn.begintrans之后所有的操作才能生效。
通過(guò)合理使用事務(wù)來(lái)保證數(shù)據(jù)的一致性。例如計(jì)費(fèi)管理系統(tǒng)中充值操作,該過(guò)程是先更新“帳戶(hù)資料”中余額,再向“用戶(hù)充值與消費(fèi)”和“操作員充值”表里分別插入充值記錄?,F(xiàn)在啟動(dòng)一個(gè)事務(wù),要求這些操作要么全部執(zhí)行,要么全部不執(zhí)行,可以在客戶(hù)端下寫(xiě)如下代碼啟動(dòng)事務(wù),并進(jìn)行相關(guān)的提交和回滾操作。
用戶(hù)充值過(guò)程的核心代碼如下:
Dim JFConn as new adodb.connection
JFConn.connectionString=\"連接字符串\"
JFConn.Open
JFConn.BeginTrans '開(kāi)啟事務(wù)
On error goto ErrorHand
JFConn.execute \"update帳戶(hù)資料…\" '更新余額
JFConn.execute \"insert into用戶(hù)充值與消費(fèi)…\" ‘插入充值歷史記錄
JFConn.execute \" insert into操作員充值…\" ‘插入充值記錄
JFConn.CommitTrans '提交事務(wù)
Exit sub
ErrorHand:
JFConn.RollbackTrans '回滾事務(wù)
2.6 數(shù)據(jù)庫(kù)驗(yàn)證方式和連接
應(yīng)用程序端連接數(shù)據(jù)庫(kù)時(shí)使用的數(shù)據(jù)庫(kù)驗(yàn)證方式為SQL Server驗(yàn)證,并且連接數(shù)據(jù)庫(kù)的密碼盡可能設(shè)得復(fù)雜些。為了系統(tǒng)具有良好的兼容性和可移植性,我們可以通過(guò)系統(tǒng)配置文件或注冊(cè)表獲取相應(yīng)數(shù)據(jù)庫(kù)相關(guān)參數(shù)(如數(shù)據(jù)庫(kù)服務(wù)器名或IP地址等),然后生成一個(gè)數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)的連接字符串。這個(gè)連接字符串也可以使用CAPICOM技術(shù)加密存儲(chǔ)在系統(tǒng)配置文件中。
2.7 通信安全
在管理信息系統(tǒng)設(shè)計(jì)過(guò)程中,為了數(shù)據(jù)傳輸?shù)陌踩?,?shí)際應(yīng)用中,應(yīng)該將通信數(shù)據(jù)包采用密文傳輸,發(fā)送方對(duì)發(fā)送的數(shù)據(jù)先進(jìn)行加密,接收方收到密文后再還原為真正的通信數(shù)據(jù),以防止被一些惡意用戶(hù)使用攔截技術(shù)、嗅探手段等截取明文數(shù)據(jù)進(jìn)行破壞。
3 結(jié)束語(yǔ)
隨著各類(lèi)信息管理系統(tǒng)應(yīng)用的普及,系統(tǒng)的安全性也越來(lái)越受到重視。本文初步探討了C/S架構(gòu)管理信息系統(tǒng)開(kāi)發(fā)過(guò)程中涉及系統(tǒng)數(shù)據(jù)安全的相關(guān)技術(shù),尚有許多其它安全性方面的問(wèn)題有待今后進(jìn)一步深入研究和解決。
參考文獻(xiàn):
[1] 劉智.Client/Server結(jié)構(gòu)模式機(jī)房管理系統(tǒng)的探討與研究[J],大連大學(xué)學(xué)報(bào),2000,21(4):25-26.
[2] 汪彥,陽(yáng)愛(ài)民.基于sockets編程與桌面數(shù)據(jù)庫(kù)的機(jī)房管理系統(tǒng)[J].山西科技,2007,3:53-54.
[3] 羅興榮,淺析使用Acces2000與SQLServerZO00的區(qū)別[J].電腦知識(shí)與技術(shù),2007:1355.