2015-06-15 87 views
1

我想用比隱藏導航面板和隱藏後端文件更可靠的方法來保護數據庫的安全。是否有辦法完全密碼保護所有對象不被修改或訪問?當他們試圖通過表單修改表格數據時會造成麻煩嗎?如果是這樣,我猜測可以使用VBA臨時解鎖表。保護Access數據庫

+0

感謝您的建議,但我在Access 2013中創建了這個建議,並且不想依賴於舊功能。 – Mike

回答

0

好了,所以我不得不做4兩件事:

  1. 加密後端。這使得它們需要密碼才能打開後端文件。但他們仍然可以從前端訪問表格和內容!接下來的步驟是防止這種情況。
  2. 在前端中,從選項中取消選中:顯示導航窗格,允許完整菜單和允許默認快捷菜單。這使得它最初打開時沒有顯示任何開發內容。但是,如果他們去了取消選中的地方,他們可以自己重新檢查這些選項。要刪除他們對「文件」菜單中的選項的訪問權限...
  3. 創建一個名爲USysRibbons的表。它應該有兩個屬性:RibbonName(鍵)和RibbonXML。把你RibbonName想要的名字,但在RibbonXML,放:

    <customUI xmlns="http://schemas.microsoft.com/office/2009/07/customui"> <ribbon startFromScratch="true"> <qat> <sharedControls> <control idMso="ImportExcel" label="Import from Excel" enabled="true"/> </sharedControls> </qat> </ribbon> <backstage> <button idMso="ApplicationOptionsDialog" visible="false"/> </backstage> </customUI>

它設置<ribbon startFromScratch="true">,因爲它阻止用戶用鼠標右鍵單擊功能區或快速訪問工具欄,選擇自定義功能區很重要,並從那裏訪問菜單。 <qat>標籤中的內容只是在快速訪問工具欄中添加一個從Excel導入按鈕。

然後轉到選項>當前數據庫>功能區名稱,然後選擇您剛創建的功能區記錄。但是如果他們在打開文件時按住SHIFT鍵,他們可以看到所有對象,選項等等!爲了防止這種情況,我們需要一些VBA來禁用和啓用該選項。

  • 在VBA編輯器,放東西,完成類似這樣:

    If InStr(globalstrPermission, "admin") <> 0 Then 'If logging in as the admin 
        Dim prop As Property 
        On Error GoTo SetProperty 'if property is already set and appended, skip down to the popup 
        Set prop = CurrentDb.CreateProperty("AllowBypassKey", dbBoolean, False) 'create and set the property 
    
        CurrentDb.Properties.Append prop 
    
    SetProperty: 
        If MsgBox("Do you wanna turn on bypass key?", vbYesNo, "Allow Bypass") = vbYes Then 
        CurrentDb.Properties("AllowBypassKey") = True 'MAKE SURE THIS SAYS TRUE OR YOU WILL LOCK YOURSELF OUT OF DEVELOPER TOOLS FOREVER 
        Else 
        CurrentDb.Properties("AllowBypassKey") = False 
        End If 
    End If 
    
  • 現在,當該功能正在運行,你可以選擇 「否」 ,它阻止了SHIFT技巧的運作。但如果你想讓它工作,請登錄並點擊「是」並關閉數據庫並用SHIFT打開它。

    隨着帖子的拖延,我的寫法變得更加基本,但希望它仍然容易理解。