[摘 要] 本文從數據庫技術視角,對金融危機環境下會計信息共享保證措施進行了探討。分析了數據庫技術目前存在的問題,提出了在金融危機環境下會計信息共享保證對策。
[關鍵詞] 信息共享;數據庫技術;金融危機;保護措施
doi:10.3969/j.issn.1673-0194.2009.10.004
[中圖分類號]F232[文獻標識碼]A[文章編號]1673-0194(2009)10-0015-03
2008年,美國的金融危機迅速蔓延到全球,對中國的經濟造成很大影響,中國的實體產業:鋼鐵行業2008年行業全年利潤額850億元,比2007年的1 447億元同比下降41%;汽車行業2008年與上年同期相比,下半年產銷增速分別回落16.81個百分點和15.14個百分點,全年汽車累計產銷自1999年后首次跌破10%以下;機械行業2008年全行業完成總產值大約8.5萬億元,比2007年增長了20%,全年各項指標增長基本持平;化工行業2008年全年實現利潤1 500億元,上半年生產效益平穩增長,下半年運行情況出現逆轉,行業增加值比上年增長10%,增速同比回落10.7個百分點。唯獨2008年中國軟件產業整體保持快速增長態勢,累計完成軟件業務收入7 572.9億元,同比增長29.8%,增速比上年同期高8.3個百分點。這說明在金融危機環境下,在外部環境惡化,市場壓力增加,效益增速下滑或者虧損的情況下,選擇利用信息技術提升企業競爭力和管理水平的要求增加。作為企業信息系統核心子系統,會計信息系統的信息共享成為企業信息系統的使用者和提供者必須面對的問題。
一、會計信息共享存在的問題分析
在會計信息系統中,會計信息是對會計數據進行加工處理得出的,可以有效輔助企業相關管理者進行有關決策服務的。會計數據實際上是描述會計交易和事項的符號記錄,在計算機中,為了存儲和處理這些事物,就要抽出對這些事物感興趣的特征組成一個記錄來描述。在會計信息系統中數據庫就是長期儲存在計算機內、有組織、可共享的會計數據集合,數據庫中的會計數據按一定的數據模型組織、描述和儲存,具有較小的冗余度,較高的數據獨立性和易擴展性,并可為各種用戶共享。
會計數據的管理依賴于數據庫技術, 數據庫技術應數據管理任務所需產生于20世紀60年代中期,是有關會計數據管理的最新技術,它的出現在很大程度上促進了計算機應用于會計行業的發展滲入。在會計信息系統中,數據庫可以供多個用戶共享,具有最低冗余度和較高的會計數據獨立性,但正因為會計信息系統的數據庫為許多用戶共享,更使得其中的數據庫技術問題尤為突出。現如今,會計信息系統的數據庫以及數據庫技術已廣泛服務于國家各級政府、軍隊、商業部門及各個企業,它不僅是每一筆電子交易、金融和企業可利用資源規劃的基礎,也包含許多來自商業合作伙伴以及客戶的敏感性信息。因此,這些數據庫中會計數據的并發控制、完整性和安全性是非常重要的,但是往往管理員對于會計信息系統的數據庫所采取的安全檢查和防護措施遠不及對操作系統和網絡系統的檢查和防護措施,所以數據庫因沒有做好安全檢查和防護措施而被黑客攻擊的事件屢見不鮮。在現今開放的網絡環境下,未來的會計信息系統將使得整個社會的會計信息實現全面共享,所以從數據庫技術方面加強會計信息共享的保證措施變得尤為重要。
二、會計信息共享保證措施
數據庫系統中的會計數據是經由數據庫管理系統來統一進行管理和控制的,為適應會計數據共享的環境、保護數據庫環境、并保證數據庫中會計數據的安全可靠和正確有效性,數據庫管理系統必須提供統一的會計數據保護功能,通過并發控制、完整性控制和安全性控制等來達到控制會計數據,實現有效共享的目的。
1.并發控制
作為共享資源的數據庫,它可以供多個用戶使用。當多個用戶同時訪問、存取和修改數據庫時,就有可能對會計數據庫的完整性產生破壞,容易產生丟失修改和不一致的問題,此時就需要對數據庫進行并發控制,以保證數據庫中會計數據的一致性。并發控制機制的好壞是衡量一個數據庫管理系統性能的重要標志之一。
并發控制在數據庫管理系統中是以事務為單位來進行的。而事務是用戶定義的數據庫操作的一個系列,這些操作或者全部都做,或者全部都不做,是一個完整的不可分割的工作單位。事務有4個特性:原子性、一致性、隔離性、持久性。原子性是指一個事務的全部操作是一個整體,在邏輯上是一個不可分割的工作單位;一致性是指一個事務執行的結果必須使得數據庫從一個一致性狀態轉變到另一個一致性狀態;隔離性是指數據庫管理系統要保證多個事務并發執行的效果要和系統一次只執行一個事務也即串行執行事務的效果一樣;持久性是指一個事務一旦提交上去,它對數據庫中會計數據的改變就應該是永久性的,以后的操作或故障不會對其產生任何影響。并發控制有兩種基本方法:封鎖和版本。
(1)封鎖
封鎖是一種悲觀的并發控制機制。封鎖機制是指通過強制實施一個順序修改過程來達到阻止錯誤修改的目的。在并發控制的實現中,要特別注意封鎖級別的選擇。封鎖級別也稱為鎖粒度,即封鎖的數據庫源的范圍。鎖的類型包括共享鎖和排他鎖,是數據庫管理系統提供的最常用的封鎖類型。共享鎖也稱為讀鎖或S鎖,它允許其他事務讀一個記錄或其他資源但不能修改它。排他鎖也稱為X鎖或寫鎖,它可以阻止另一件事務讀(并修改)一個記錄一直到它被解鎖。
所謂封鎖協議就是在對會計數據對象加鎖、持鎖和釋放鎖時所約定的一些規則。保證數據庫數據一致性的有3級封鎖協議,但是利用3級封鎖協議可以解決并發執行時丟失修改、不可重復讀等的問題時,又可能導致死鎖問題的產生——當兩個或多個事務為同一公共資源加鎖,而且每一個事務必須等待其他事務來解鎖這一資源時,就會產生困境,這就是死鎖。解決死鎖的兩種基本方法就是死鎖預防和死鎖解除。在事務開始時,為全部所需的記錄加鎖就能預防死鎖。死鎖的預防可以通過一次封鎖法和順序封鎖法來解決。一次封鎖法就是要求每一個事務必須一次將所有需要使用的會計數據全部加鎖,否則將不予繼續執行;順序封鎖法就是提前對某個會計數據對象規定一個封鎖順序,所有事務都要按照這個順序來進行封鎖。死鎖解除是允許死鎖發生,但在數據庫管理系統里建立一種機制用來檢測和打破死鎖,數據庫管理系統可以用超時法或事務等待圖法來檢測死鎖。超時法就是當一個事務的等待時間超過了規定的時限時,就認為是發生了死鎖;等待圖法是用圖來動態地反映所有事務的等待情況,若圖中存在回路,就表明系統中發生了死鎖現象。死鎖解除通常是選擇一個處理死鎖代價最低的事務將其撤銷,釋放此事務持有的全部的鎖,這樣使得其他事務繼續運行下去。
(2)版本
并發控制的樂觀方法稱為版本。使用版本時就沒有加鎖的形式。每一個事務開始時,就被限制在數據庫的一個視圖中,且當一個事務修改一個記錄時,數據庫管理系統就會創建一個新的記錄版本用以代替或者重新改寫舊記錄。
版本優于封鎖,相比封鎖,它的主要優點就是性能改進,只讀事務和修改事務能夠并行,從而不失數據庫的一致性。
2.完整性控制
數據庫的完整性是數據庫設計和數據庫應用系統開發中的關鍵問題之一。它要求數據庫在物理上和邏輯上都是符合完整性的,并且SQL可以提供3種完整性約束條件:實體完整性、參照完整性和用戶自定義完整性,它們共同促進了數據庫技術的完整性控制。

(1)完整性控制的內涵
數據庫的完整性是指保證數據庫中會計數據的正確性、有效性和相容性,防止錯誤的數據進入數據庫。數據庫是否完整關系到數據庫系統能否真實反映客觀的現實世界,所以對于數據庫完整性的維護是非常重要的。數據庫的完整性包括物理上和邏輯上的完整性。
① 物理上的完整性。物理上的數據庫完整性應該能夠確保當數據庫出現物理方面的問題后可以重構數據庫,如突然斷電或被災禍破壞等。
② 邏輯上的完整性。邏輯上的數據庫完整性是指當數據庫被用戶錯誤操作時,數據的結構不會發生變化。例如,某一個字段的值的修改不會影響到其他字段。
(2)完整性控制的約束條件
為保證數據庫的完整性,數據庫管理系統必須提供某一種機制來檢查數據庫中的會計數據是否滿足語義規定的條件,也即數據庫完整性約束條件。通常,數據庫管理系統通過完整性約束來實現數據庫的完整性。關系數據庫提供了3類完整性:實體完整性、參照完整性和用戶自定義完整性。其中,實體完整性規定,關系的主碼是不可為空的;參照完整性規定,關系的外碼不可以引用不存在的屬性;用戶自定義完整性則規定了某個特定的屬性取值約束。這些完整性在具體實現時可以通過SQL語言提供的Primarykey、Unique、Foreign key和Check約束來完成。
① 實體完整性。實體完整性規定,關系的主碼不可為空,也即基本關系的所有主屬性都不可取空值,且取值必須唯一,不可重復。
② 參照完整性。參照完整性規定,關系的外碼不可以引用不存在的屬性,也即基本關系的任何一個元組在外碼上的取值要么是空值,要么就是被參照關系中的一個元組的主碼值。
③ 用戶自定義完整性。用戶自定義完整性規定了某個特定的屬性取值約束,它反映了某一具體應用涉及的會計數據所必須滿足的語義要求。它包括唯一值約束、非空值約束、域約束和觸發器等。唯一值約束是指表中某一列的取值不能與該表中另一行會計數據在該列的取值相同;非空值約束指表中某一列用戶不能輸入空值;域約束是指定義域時要確定域的取值范圍;最后指對于用戶定義的完整性可以利用觸發器來定義。
3. 安全性控制
作為共享資源的數據庫,無可避免地存在著數據庫的安全問題。數據庫的安全是指保證數據庫信息的保密性、完整性、一致性和可用性。保密性指保護數據庫中的數據不被泄露和未授權的獲取;完整性指保護數據庫中的數據不被破壞和刪除;一致性指確保數據庫中的數據滿足實體完整性、參照完整性和用戶定義完整性要求;可用性指確保數據庫中的會計數據不因人為和自然的原因對授權用戶不可用。數據庫的安全性控制就是要盡可能杜絕所有可能的數據庫被非法訪問,不管他們是有意的還是無意的。
(1)一般方法
一般的,在計算機系統中,安全措施都是逐層設立的,如圖1所示,在用戶進入計算機系統時,系統首先要對其標識進行用戶的身份鑒定,鑒定合法的用戶才被準許進入計算機系統中。對進入計算機系統的用戶,數據庫管理系統還要進行存取控制,并只允許用戶進行合法的操作,對于非法操作將不予執行。操作系統一級也具有自身的保護措施,最后還可把會計數據加密后存到數據庫中。

(2)對用戶的標識與鑒定
對用戶的標識與鑒定是計算機系統最外層的安全保護措施。方法就是由系統提供一定的方式來讓用戶標識自身的名字或身份。也就是說,系統內存儲著所有合法用戶的標識,每次用戶需要進入系統時,就由系統對用戶的身份進行識別和鑒定,核實身份后才允許用戶進入計算機系統。
(3)存取控制
存取控制是指授予某個用戶某種特權,利用該特權能夠以某種方式(如讀取、修改等)訪問數據庫中的某些會計數據對象。存取控制可以通過SQL授權語句提供靈活的授權機制、授予用戶特權和對角色的管理來完成。
(4)審計
安全性措施對于計算機系統來說并不能窮盡,總會有黑客、間諜或其他想要盜竊或破壞會計數據的人在想方設法地破壞控制。因此,對于敏感性的會計數據或極為重要的會計數據處理,就有必要以審計技術為監控手段來監測任何可能存在的不合法行為。
此審計是指對選定用戶動作的監測和記錄,一般由信息技術審計員用于審查可疑的活動或監控并收集有關指定數據庫活動的會計數據,以達到數據庫系統控制得當并能夠正常運轉。比如說,Oracle數據庫能做到以下3種審計類型:語句審計、特權審計和對象審計。
(5)數據加密
對于某些高度機密的會計數據,除了利用以上的安全措施之外,還可以采取會計數據加密技術。正常的用戶在檢索會計數據時,首先要提供密碼鑰匙,經由計算機系統進行解碼后,才能獲得可識別的會計數據資料;而非法用戶通過不正常渠道得到的會計數據只是一些無法辨認的二進制數,這樣就保證了對機密會計數據的安全性控制。
當前的不少數據庫產品都提供了會計數據加密程序,系統可根據用戶的要求做到自動對要儲存和傳輸的會計數據進行加密處理;部分數據庫產品沒有提供會計數據加密技術,但是提供了接口,它允許用戶使用其他廠商的加密技術程序對會計數據進行加密。會計數據加密技術相應地也存在會計數據解密程序,這些會計數據解密程序自身也具有一定的安全性保護措施。因為不管會計數據加密還是會計數據解密都是比較費時的操作,并且加密、解密程序也會占用大量的系統資源空間,所以數據庫管理系統將它們設為可選操作,只對高度機密的會計數據進行加密。
主要參考文獻
[1] 王珊,陳紅.數據庫系統原理教程[M].北京:清華大學出版社,1998:145-172.
[2] 〔美〕Jeffrey Hoffer.現代數據庫管理[M].第7版.袁方,羅文劼,李寧,等,譯.北京:電子工業出版社:483-488.
[3] 王珊,張孝,李翠平,等.數據庫技術與應用[M].北京:清華大學版社,2005:119-138.
[4] 國家技術監督局.中華人民共和國公共安全行業標準GA/T389-2002:計算機信息系統安全等級保護數據庫管理系統技術要求[S].北京:中國標準出版社,2002.
[5] 國家技術監督局.中華人民共和國國家標準GB17859-1999:計算機信息系統安全保護等級劃分準則[S].北京:中國標準出版社,1999.
[6] 〔美〕Joel Siegel,Jae Shim.數據庫管理系統管理人員必讀[M].尹買華,譯.北京:清華大學出版社,2004:196.