保护Access数据库

时间:2015-06-15 16:40:09

标签: password-protection ms-access-2013

我正在尝试使用比隐藏导航面板和隐藏后端文件更可靠的方法来保护数据库。有没有办法完全密码保护所有对象不被修改或访问?当他们尝试通过表单修改表数据时,这会导致麻烦吗?如果是这样,我猜测可以使用VBA临时解锁表。

1 个答案:

答案 0 :(得分:0)

好的,所以我必须做4件事:

  1. 加密后端。这使得他们需要密码才能打开后端文件。但他们仍然可以从前端访问表格和内容!接下来的步骤是防止这种情况。
  2. 在前端,取消选中:显示选项中的“显示导航窗格”,“允许完整菜单”和“允许默认快捷菜单”。这使得最初打开时没有任何开发内容显示出来。但如果他们去你取消选中的地方,他们可以自己重新检查这些选项。要删除他们对“文件”菜单中的选项的访问权限...
  3. 创建一个名为USysRibbons的表。它应该有两个属性:RibbonName(key)和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>

  4. 设置<ribbon startFromScratch="true">非常重要,因为它会阻止用户右键单击功能区或快速访问工具栏,选择自定义功能区以及从那里访问菜单。 <qat>标记中的内容只是在快速访问工具栏中添加“从Excel导入”按钮。

    然后转到选项&gt;当前数据库&gt;功能区名称,然后选择刚刚创建的功能区记录。但是如果他们在打开文件时按住SHIFT键,他们就可以看到所有对象,选项等等!为了防止这种情况,我们需要一些VBA来禁用和启用该选项。

    1. 在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
      
    2. 现在运行该功能并选择&#34; no&#34;时,它会阻止SHIFT技巧工作。但是如果你想让它工作,请登录并点击&#34; yes&#34;并关闭数据库并使用SHIFT打开它。

      随着帖子的拖延,我的措辞变得更加基本,但希望它仍然很容易理解。