编辑记录访问权限

权限集可以限制对文件中记录的访问。对于文件,您可以设置:

  • 所有表的权限:可以限制权限集是否允许创建、编辑和删除某个文件的所有表中的记录。

  • 每个表的自定义权限:可以为每个表设置单独的记录访问限制。例如,权限集可限制下列能力:

    • 查看、编辑、创建或删除每个表中的所有记录。

    • 查看、编辑或删除每个表中的特定记录。权限通过为每条记录返回布尔值结果的计算加以限制。当计算结果为“真” (True)时,允许访问特定的活动(例如查看记录)。当计算结果为“假” (False)时,禁止访问该活动。

    • 访问或修改每个表中的特定字段。如果在不可见的表中限制对一个或多个字段的访问,则用户将看到 <不可访问> 而不是字段数据。

您只能对当前文件中定义的表设置记录访问权限。如果该文件与要保护的其他文件中的表之间存在关系,则必须创建帐户访问权限条目和权限集来保护这些表。请参阅关于帐户、权限集和扩展权限

要编辑所有表的记录访问权限:

  1. 在“编辑权限集”对话框中开始编辑新的或现有的权限集。

    请参阅创建和编辑权限集

  2. 在“数据访问和设计”区域中,为“记录”选择一个选项。

  3. 编辑权限集要实现的目的

    选择

    允许在所有表中创建、编辑和删除记录

    在所有表中创建、编辑和删除

    只允许创建和编辑所有表中的记录(禁止删除记录)

    在所有表中创建和编辑

    只允许查看所有表中的记录(禁止创建、编辑和删除记录)

    仅在所有表中查看

    禁止访问所有表中的记录

    全部不可访问

要编辑个别表的记录访问权限:

  1. 在“编辑权限集”对话框中开始编辑新的或现有的权限集。

    请参阅创建和编辑权限集

  2. 在“数据访问和设计”区域中,为“记录”选择“自定义权限”。

  3. 在“自定义记录权限”对话框中,选择一个或多个要为其编辑自定义权限的表。(或者选择“任何新表”为以后创建的任何表设置权限。)

  4. 要设置查看、编辑、创建和删除记录的自定义权限,请从“设置权限”区域中的“查看”、“编辑”、“创建”和“删除”列表中选择下列某个选项:

  5. 选择

    目的

    允许权限(查看、编辑、创建或删除记录)。

    受限的(仅当只选择一个表时可用)

    允许或禁止对表内特定记录的权限(查看、编辑和删除记录)。

    在“指定计算方式”对话框中,输入一个计算,然后单击“确定”。请参阅输入公式对记录逐一限制访问,如下所示。

    禁止权限(查看、编辑、创建或删除记录)。

    注释  避免创建出现不一致的查看、编辑、创建和删除权限的组合。例如,您可能非常不希望允许用户删除他们不能查看的记录。

  6. 要限制对表内特定字段的访问或修改,请继续下一步。

  7. 选择包含希望限制访问的字段的表。然后,对于“字段访问权限”,选择“受限的”。

  8. 在“自定义字段权限”对话框中,选择希望限制访问的每个字段(或者选择“任何新字段”为以后创建的任何字段设置自定义权限)。然后选择下列某个选项:

  9. 选择

    目的

    可修改

    允许查看和编辑字段数据。

    只可查看

    允许查看字段数据。(不允许编辑字段数据。)

    不可访问

    禁止访问字段。

    注释如果某个表可见但其中的一个或多个字段是禁止访问的,用户将看到 <不可访问>,而不是字段数据。

注释 

  • 不能查看特定记录的用户仍可以浏览这些记录,但这些用户将看到 <不可访问>,而不是每条记录内的字段数据。

  • 当限制访问文件中的记录、字段和表时,FileMaker 客户端中的许多功能都会受到影响。下表总结了对部分功能的影响。

  • 功能

    限制数据访问的影响

    查找和重新查找

    查找和重新查找由三个组件定义,所有组件都会受到数据访问权限的影响:

    • 最低要求是,关系中使用的匹配字段必须具备查看权限。此外,不能查找在源表和目标表中均无法查看的任何记录,因为在这些情况下,不能进行匹配。这包括第一个相关的匹配记录以及用于拷贝下一个较大值或较小值的任何记录。

    • 最低要求是,查找的源字段必须具备查看权限。

    • 查找的目标字段必须具备编辑权限。

    如果查找操作由于访问权限的限制而跳过某些记录,FileMaker 客户端并不显示错误消息。

    访问相关数据

    最低要求是,关系中相匹配的两个字段必须同时具备查看权限,这样该关系才能工作。要显示的、基于匹配字段的任何相关字段必须至少具备查看权限。

    查找

    搜索结果总是经过筛选,只显示至少具备查看权限的记录。如果访问受到限制,Get (查找个数) 函数的结果也会受到影响。

    值列表

    如果值列表基于字段的内容,并且对该字段的查看权限被禁止,那么该值列表不会显示任何值。正因如此,用户才不会无意间访问到机密信息。当访问受限制时,ValueListItems 函数的结果也会隐藏起来。

    合计字段和计算字段

    合计字段和汇总多条记录的计算字段中显示的结果会将查看权限被禁止的记录中的数据排除在外。

    查找/替换、替换内容和拼写检查

    用户只能使用这些功能更改下列项目中的数据:

    • 具备编辑权限的记录。

    • 可修改的字段。

    脚本

    您可以设置脚本选项,使其以完全访问权限运行,这样就允许脚本执行权限有限的用户通常无法执行的操作。如果不启用此选项,任何试图访问或更改受限数据的脚本步骤都将失败。请参阅创建并编辑脚本

    Apple 事件

    数据访问权限会影响用户使用 Apple 事件获取、设置和删除数据的能力。如果用户没有相应的访问权限,某些 Apple 事件命令可能会失败。

输入公式对记录逐一限制访问

要允许或禁止对表内特定记录的查看、编辑和删除权限,如上所述,需要指定一个用于确定是否允许该权限的布尔值计算公式。对于数据库中的每条记录,当计算结果为“真” (True)或非零值时,则允许访问;当计算结果为“假” (False)或零时,则禁止访问。下面举两个例子:

  • 要使访问仅限于当前帐户创建的记录:定义名为 Record_Created_By 的文本字段,为该字段设置自动输入选项以便在创建记录时自动输入帐户名。(请参阅定义自动数据输入。) 然后,在定义自定义记录访问权限时使用以下计算公式:

    复制
    Record_Created_By = Get (帐户名)

    对于上面的计算结果为“真” (True) 的记录,用户将只具有浏览访问权限。

  • 要使访问仅限于当前日期创建的记录:定义名为 Record_creation_date 的日期字段,为该字段设置自动输入选项以便在创建记录时自动输入创建日期。(请参阅定义自动数据输入。) 然后,在定义自定义记录访问权限时使用以下计算公式:

    复制
    Record_creation_date = Get (当前日期)

    对于上面的计算结果为“真” (True) 的记录,用户将只具有浏览访问权限。

提示  如果指定计算公式禁止查看表中的特定记录,那么在大多数情况下,应使用相同的计算公式禁止编辑和删除相同类型的记录。否则,您可能会无意中允许用户编辑或删除他们不能查看的记录。

注释 

  • 确定记录访问权限的布尔值计算公式可能会返回意外的结果,尤其是当该公式基于用户可编辑的字段时。例如,只对特定记录享有访问权限的用户有可能在编辑记录后无意中拒绝访问此记录。用户可能会更改记录的内容,这会更改布尔记录访问算式的结果,导致其解析为“False”;然后当该用户退出该记录后便再也无法查看、编辑或删除它了。

    因为这些更改会在用户退出记录时立即提交,所以做出此类更改的用户将再也无法返回该记录。(在大多数情况下,应该针对用户不能直接编辑的字段设置记录访问计算公式,例如包含帐户名、创建日期和修改日期的自动输入字段。)

    此外,如果该文件是共享的,并且确定记录访问权限的布尔值计算公式包含一个或多个全局字段,则可以通过将某些全局字段移动到独立的表中来提高网络性能。请参阅定义全局字段(具有全局存储的字段)中的“注释”部分。

  • 要完全支持多窗口,让每个窗口包含各自的搜索结果,合计值应作为搜索结果的一部分。一条记录可以出现在多个窗口中,并且每个窗口都有自己的搜索结果和排序顺序。出于这些原因,请不要在权限计算公式中使用合计或 Get 函数,这些函数依赖于使用特定搜索结果的值。