我需要根据字段的值在同一个表中设置用户权限。我知道这在Access中是不可能直接实现的,但Allenbrown.com上的一篇文章指出了一种方法。我不精通编码,所以我希望我能从你那里得到一些方向。以下是详细信息:
我在数据库中有两个表,一个父表通过表单填充,一个子表通过子表单填充。父节点包含公司,子节点包含这些公司的子公司。在子表中,我有一个名为"Domicile"的字段,我希望根据该字段区分用户访问。由于该数据库将由世界各地的各种人员使用,因此我的计划是基于位置创建用户组,并允许用户基于其位置(如组中指定的)与子公司的住所之间的匹配来编辑(或添加)信息。例如,一个在欧洲的人只被允许编辑位于欧洲的子公司的数据,即使来自其他地区的公司可能存储在同一个表中。
我在这里寻找一些指导,以及你认为如何最有效地完成的建议。我并不偏向于这种方法,这只是我想出来的一些东西,以便在我所做的事情背后放置一些逻辑。
非常感谢!
在Allen的描述中需要注意的重要事情是(强调我的):
假设所有的更新都是通过表单执行的,那么表单的Current事件就会根据这个属性锁定字段。
如果用户直接打开后端数据库文件,将没有实用的、可靠的方法来防止用户查看和修改表中的任何数据。
既然你是在询问如何"[行或列级限制]可能最有效地完成"的建议,那么你需要解决的第一个问题是这些限制到底需要有多"有效":
-
如果您可以接受这些将是"软限制"(实际上是为了方便用户,以便他们在使用表单时不会意外更改某些记录或字段),那么Allen的方法可能就足够了。(如果是这样,那么尽你所能按照Allen的指导去做,如果你在实现的某个特定方面需要帮助,可以提出新的问题。)
-
另一方面,如果您需要"硬限制"(针对恶意或恶意用户活动的严重保护),那么您将不得不使用不同的数据库后端-例如Microsoft SQL Server -具有更丰富的安全工具集供您使用。