设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

MDB+SQL連接表

1970-1-1 08:00| 发布者: chajiangliang| 查看: 1180| 评论: 0

臨床表現﹕發布的MDE 不論是否有安全機制﹐有了Officekey之類的軟件﹐數據庫密碼與群組密碼都沒用了, 更何況發布MDE時不會再做沒用的數據庫密碼。如果你的連接表是帶有密碼的﹐那一查你的MSysObjects表﹐SQL密碼就完蛋了, 如果不帶密碼﹐總是在你操作時提示輸入密碼﹐同樣失敗。內憂外患怎么辦?

自配秘方:

讓大家回復只是希望多些人了解MDE+SQL的安全性﹐希望支持

1. 用正常ODBC連接SQL資料表, 且再用以下代碼重新連接

Function ODBCrelink()

    Dim db As Database
    Dim tbl As TableDef
    Dim a As String
    Dim B As String
    Dim D As String
    
    a = "sa" '用户
    B = "102030" '口令
  
    Set db = CurrentDb
    For Each tbl In db.TableDefs
                    If Left(tbl.Connect, 4) = "ODBC" Then
                  tbl.Connect = "ODBC;DRIVER=SQL server;SERVER=172.118.132.210;DATABASE=ABCDatabase"
                   tbl.Attributes = dbAttachSavePWD
                  tbl.RefreshLink
              End If
    Next

End Function

2. 當然發布的MDE都有一個啟動窗體﹐并且數據庫窗體要設置為不顯示了

3. 啟動窗體下代碼如下﹕其中left(date,4)是隨便寫的一個函數目的是使得密碼部分是通過一定算法得到的﹐一定不能直接寫密碼。

private sub form_load()

Dim tbl As DAO.TableDef

   If CurrentDB.Properties("StartupShowDBWindow") = False Then
        Set tbl = CurrentDb.CreateTableDef("")
               tbl.Connect = "ODBC;DRIVER=SQL Server;SERVER=172.118.132.210;UID=SunPo;PWD=" & left(date,4) & ";DATABASE=ABCDatabase"
               tbl.Attributes = dbAttachSavePWD
               tbl.Name = "AAA"
               tbl.SourceTableName = "AAA"
               CurrentDataBase.TableDefs.Append tbl
               CurrentDataBase.TableDefs.Delete "AAA"
end if

end sub

4. 發布出去的MDE最好只有用戶只應有的權限﹐一定不要有壓縮修復數據庫等數據庫管理方面的功能﹐否則前功盡棄

5. 藥效

a. 只要數據庫窗體出現﹐連接表就不會連接到SQL

b. 不論何時從其他MDB中導入此MDE的表時, 都不會成功。

6. 耐藥性

如果病毒深入了解以上原理﹐當然還有一些相對應的破解此MDE方法。但你想到的時候﹐我的藥方也會升級的﹐主要是多一些判斷, 畢竟能實現連接是我代碼做到的, 只要不能被導出﹐其他都好辦。你不信試一試!!!

最新评论

相关分类

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-1 03:44 , Processed in 0.077447 second(s), 16 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

返回顶部