有没有办法保护ms访问数据库中的表免受未经授权的访问?我希望我的用户使用数据库中的表单,但我不希望他们看到表的内容。我知道我可以隐藏一张桌子,但任何只知道访问权限的人都可以显示隐藏的表格。我也将名称更改为UsysTableName但是再次 - 启用系统表会显示所有名称。有更安全的方式吗?用密码保护可能吗?
答案 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)
有了一些限制,可以完全删除前端/应用程序中后端表的链接:
ChDir "\\someShare\someFolder"
SELECT field1, field2 FROM [BackendName_be.mdb].myTable
。请注意,路径是 NOT 指定的! 这样,表单/报告将完美地运行,而不会在应用程序中使用任何表(甚至不隐藏)。
如果您将BE放在隐藏文件夹/共享中并提供MDE,用户将很难找到数据的位置。
这种技术具有额外的好处,允许后端的即时切换(如测试/产品之间)。
答案 4 :(得分:-1)
Access在保护表中的数据方面做得很差。您的用户需要访问表格才能使用数据,但您不希望他们看到所有内容。您可以自动加密表格中的数据。我在Access Data Encryption研讨会上讨论了这个问题。