2015-02-06 88 views
1

我有一个MS Access数据库,其中所有的用户将在同一个组中,除了少数几个。我不需要限制用户的某些对象。相反,我需要将当前用户写入功能赋予其记录及其相关记录,并将所有其他记录的只读功能赋予该功能。这可能吗?MS Access - 记录级安全

回答

2

不幸的是,无论是Access,SQL服务器还是Oracle,对单个用户的行限制都不是内置的。这意味着您必须构建某种类型的接口来抓取/使用用户登录ID(他们的网络电脑ID,或说提示输入用户名+密码)。然后,当表单加载时,您必须将记录限制为给定用户的记录。有很多方法可以做到这一点,它们都是过滤或限制数据的标准方法。然而,“你”必须在表单中编写这样的代码。您可以使用表达式(VBA或宏TempVars)将表单基于查询来限制返回给定用户的记录。

所以你必须为大多数数据库“烹饪”和“编码”这种能力。因此,您还需要编码以“保存”创建记录的用户名。当需要将数据限制为单行时,大多数系统都需要这种编码要求,而这些功能一般不会内置到数据库系统中。您也可能需要限制和防止用户打开数据库并查看表格视图。

+0

感谢您的回复,Albert!我最终做了类似于你的建议。如果NetworkUser的ID与所选项目的ID不匹配,我写了一些禁用并锁定列表框的代码。他们可以阅读任何内容,但不能写任何东西。似乎工作很好。再次感谢您的输入。 – Brian 2015-02-10 01:51:54