Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ms access MS Access-记录级安全性_Ms Access - Fatal编程技术网

Ms access MS Access-记录级安全性

Ms access MS Access-记录级安全性,ms-access,Ms Access,我有一个MS Access数据库,所有用户都在同一个组中,只有少数用户除外。我不需要对用户限制某些对象。相反,我需要为当前用户的记录及其相关记录提供仅写功能,并为所有其他记录提供只读功能。这可能吗 不幸的是,无论是Access、SQL server还是Oracle,都没有内置对单个用户的行限制。这意味着您必须构建某种类型的界面,在其中获取/使用登录用户的ID(他们的网络pc ID,或者说提示输入用户+密码)。然后,当加载表单时,必须将记录限制为该给定用户。有很多方法可以做到这一点,它们都是过滤或

我有一个MS Access数据库,所有用户都在同一个组中,只有少数用户除外。我不需要对用户限制某些对象。相反,我需要为当前用户的记录及其相关记录提供仅写功能,并为所有其他记录提供只读功能。这可能吗

不幸的是,无论是Access、SQL server还是Oracle,都没有内置对单个用户的行限制。这意味着您必须构建某种类型的界面,在其中获取/使用登录用户的ID(他们的网络pc ID,或者说提示输入用户+密码)。然后,当加载表单时,必须将记录限制为该给定用户。有很多方法可以做到这一点,它们都是过滤或限制数据的标准方法。然而,“您”必须构建并将这些代码写入表单中。您也许可以将表单基于带有表达式(VBA或宏TempVars)的查询,该表达式限制返回给给定用户的记录


因此,您必须为大多数数据库“烹饪”和“编码”这种能力。因此,您还需要编写代码来“保存”创建记录的用户名。当希望将数据限制为单行时,大多数系统都需要这种编码要求,而且这种特性通常不内置于数据库系统中。您可能还需要限制和阻止用户打开数据库并查看表视图。

感谢您的回复,Albert!我最后做了一些和你建议的相似的事情。我编写了一些代码,如果NetworkUser的ID与所选项目的ID不匹配,则禁用并锁定列表框。他们什么都能读,但什么都不会写。看起来效果不错。再次感谢您的输入。Postgres现在内置了行级安全性。您可以决定什么算法允许用户查看表中的记录,例如(mytable.rowowner=CurrentUser)对该表的所有读/写访问都必须通过RLS筛选器。