如何限制对 Access 中某些列的访问

How to restrict access to only some columns in Access

在 Access 2013 中,我有一个链接到 SQL 服务器的视图。 Access table 更新视图的内容,并在我编辑它时将更改写回服务器。基本的东西。

假设某个用户对该视图及其在 SQL 服务器上的关联 table 具有读写访问权限。当然,他们将能够使用 Access 编辑所有列。我如何限制他们编辑 Access 中的某些选定列,以防止意外更改主键和其他重要数据?

由于将 table 扩展到大尺寸时的性能问题,这不是 Access 中的功能。

一个简单的解决方法是向 SQL 服务器上的视图定义添加一个空字符串或其他微不足道的值。例如,将 [Product ID] 更改为 [Product ID]+''

当使用视图时,Access 将接受您所做的任何编辑,并通过视图将其传播回原始 tables,但它不能对带计算的派生字段执行此操作。通过使列派生,Access 将无法编辑该列,从而有效地限制了用户。视图中的其他列仍将正常更新。