MS Access:保护表免受未经授权的访问

时间:2009-09-14 07:57:16

标签: ms-access

有没有办法保护ms访问数据库中的表免受未经授权的访问?我希望我的用户使用数据库中的表单,但我不希望他们看到表的内容。我知道我可以隐藏一张桌子,但任何只知道访问权限的人都可以显示隐藏的表格。我也将名称更改为UsysTableName但是再次 - 启用系统表会显示所有名称。有更安全的方式吗?用密码保护可能吗?

5 个答案:

答案 0 :(得分:3)

同样在访问中有用户和组,以及授予权限的可能性。 您可以通过工具/安全性/用户和组权限访问此功能。

您需要创建一个工作组信息文件才能使用它:

请参阅:http://www.databasedev.co.uk/access_security.html

注意:事实上,在大多数情况下,Access是一个糟糕的数据库选择。但是如果你因为某种原因不得不继续使用它,那么在现实世界的应用程序中学习它的安全模型是必不可少的。

答案 1 :(得分:1)

适用于Understanding the role of workgroup information files in Access security的Access 2003 http://support.microsoft.com/kb/305542/

适用于How to use the Workgroup Administrator utility in Access 2007的Access 2007 http://support.microsoft.com/kb/918583

在您的情况下,我建议将您要保护的表移动到另一个数据库,然后链接到用户界面(前端)数据库。这使您可以更好地控制安全性。仅使用密码可以使非用户不在数据库之外。登录用户仍然可以看到表格。

答案 2 :(得分:1)

一种解决方案是将表单放在一侧(客户端),将表放在另一侧(服务器端)。每个用户只有表单的副本,表格在网络上的其他位置。

另一种解决方案是在用户的计算机上安装运行时版本的访问(免费使用)。在这种情况下,数据库窗口不会出现。

无论您选择什么,您都必须完全管理对命令栏的访问,创建自己的命令栏(并禁止显示访问命令栏)。

如果您选择第一个解决方案,您将会前往真正的客户端/服务器结构,并且您迟早可以切换到桌面的SQL Server(您的表单可以保留在Access客户端应用程序)。

答案 3 :(得分:1)

有了一些限制,可以完全删除前端/应用程序中后端表的链接:

  1. 在应用打开期间,只需在VBA中使用ChDir "\\someShare\someFolder"
  2. 作为表格的来源&报告,使用SQL SELECT而不是保存的查询/表,使用语法SELECT field1, field2 FROM [BackendName_be.mdb].myTable。请注意,路径 NOT 指定的!
  3. 这样,表单/报告将完美地运行,而不会在应用程序中使用任何表(甚至不隐藏)。
    如果您将BE放在隐藏文件夹/共享中并提供MDE,用户将很难找到数据的位置。
    这种技术具有额外的好处,允许后端的即时切换(如测试/产品之间)。

答案 4 :(得分:-1)

Access在保护表中的数据方面做得很差。您的用户需要访问表格才能使用数据,但您不希望他们看到所有内容。您可以自动加密表格中的数据。我在Access Data Encryption研讨会上讨论了这个问题。