Office中国论坛/Access中国论坛

标题: [推荐]工作群組mdw+前后端數據庫密碼+加密+啟動前端=系統安全99分﹐請大家討論支持 [打印本页]

作者: chajiangliang    时间: 2005-3-5 18:06
标题: [推荐]工作群組mdw+前后端數據庫密碼+加密+啟動前端=系統安全99分﹐請大家討論支持
如系統C/S模式﹐后端數據庫在使用了工作群組+數據庫密碼+數據庫加密三重保護后, 只作為后端, 數據庫安全系數以算較高了(當然如又同時作為前端開發對所有使用人就只相當有個工作群組保護)。 如在前端完全不用連接表﹐前端開發就不會影響后端的原安全系數, 而一旦加了連接表, 后端數據庫的密碼就從前端的MsysObjects表泄露了﹐任何有權限進入前端的的人只要通過安全群組進入一個新ACCESS數據庫, 通過代碼即可取得系統前端MsysObjects表中的后端數據庫密碼.此時即可打開后端數據庫所用物件一覽無余,如有物件相應權限即可隨意操作﹐即使后端也有屏蔽shift鍵, 但通過工作群組進入另外一個新ACCESS中連接后端的表一樣什么都保護不了. 你說可怕不可怕.

對策:取消所用用戶對前端與后端所用物件的所用權限, 只在MDE前端代碼中用管理員的帳戶與密碼訪問后端進行數據操作﹐如此對后端數據庫的三重保護才有用。

當然如此麻煩﹐不能在前端建立連接表﹐又不能建立"Select * from ABC IN 'C:\DEF.mdb'"如此的查詢,你說ACCESS還有什么好處去作多用戶系統。

因本人經驗不足﹐可能有更好的安全策略﹐還請高手指教.

同時請教是否有方法可在VB6中打開一個用密碼加工作群組保護的ACCESS數據庫(不是DAO數據連接). 如有此方法也許ACCESS就會比較安全了(除非用特別工具,而非有個VBE就可搞定).

[此贴子已经被作者于2005-3-12 9:39:49编辑过]


作者: chajiangliang    时间: 2005-3-12 07:04
知識總是相關聯的。今天又看到有網友討論在一個Access中打開另一個Access的表單的方法。之前雖然用過﹐但并不覺得有何益處﹐然而將這種方法與數據庫安全問題聯系在一起﹐突然覺得有希望解決一些問題﹐加以試驗果然不錯﹐現提出以供大家參考﹕(我很開心﹐我的數據庫有安全10倍了)

1. 比平常的C/S模式加多一個MDE前端"A", 同另外一個以前使用的前端"B"與后端"C"一樣具有相同的工作群組保護+加密, 但只有這個不加密碼保護。此A前端中有啟動窗體1個﹐開啟是執行一個函數以實現對B的引用,如:

Function opendb()

On Error GoTo a:

Dim abc As DAO.Database, a As Integer, ca As DAO.Recordset

Set abc = DBEngine.OpenDatabase("D:\0310\C.mdb", False, False, ";pwd=abccdde")

Dim ref As Reference

Set ref = References.AddFromFile("D:\0310\C.mdb")

Exit Function

a:

MsgBox Err.Description

End Function



2. 在B前端中增加個打開對象的函數﹐如﹕

function abc( Fname as string, Ftype as integer)

  select case Ftype

case 1

docmd.openform fname

case 2

docmd.openreport fname

.....

end function

3. 在B前端中的工具欄的各各command 屬性中的執行時機中使用A中的函數,如 =abc("送貨",1).

4. 令需要1個.bat 文件.  如﹕

@echo off

cdc:

copy I:\系統\A.mde

IF NOT EXIST B.mde GOTO NEW

cdI:

cd I:\系統

IF EXIST anny.txt GOTO COPY

GoTo Run

: Copy

DEL anny.txt

cdc:

COPY I:\系統\B.mde

GoTo Run

:NEW

Copy I:\系統\A.mde

COPY I:\系統\B.mde

COPY I:\short\anny.bat

COPY I:\系統\A.bmp

cdI:

cd I:\系統

IF NOT EXIST anny.txt GOTO run:

DEL anny.txt

: Run

I:

cd i:\系統\shortcut

Start anny.lnk

exit

:warning

start c:\a.exe

作用﹕每次啟動.Bat 時﹐就會將一個新的A復制到客戶端(尚未引用B前端)﹐不用擔心之前已復制的A中有應用B前端。

基本做到此步就完成了對原有模式的改造。

當然此處不再詳細講解.bat文件在整個模式中的應用﹐他主要是用來控制前端每次有更新時﹐各用戶可自動更新等許多管理員的多方位的對各用戶的管理,其他的.Lnk文件﹐BMP文件的作用大家都應該知道的.

自認為在之前的保護基礎上加上如此一步﹐整個系統應該安全了吧﹐ 除非你使用特別工具破譯了群組文件及數據庫密碼,否則B與C是打不開且訪問不了的﹐A中又無任何地方泄露連接信息的。開始試試這種方法保護你的系統嗎.

期待您的評論.

[此贴子已经被作者于2005-3-12 8:28:40编辑过]


作者: wwwok    时间: 2005-11-29 00:39
想法是好,只是实施起来有点难以理解!可否做个简单的例子让大家分享一下你的成果?
作者: wwwok    时间: 2005-11-29 18:57
顶起来!




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3