用户级安全性是否允许某人访问表单,但不能访问表?我有一个使用“SELECT”命令连接到表的表单。它不会“更新”或“删除”。我希望用户访问我的表单,但我不希望他们能够查看基础表中的详细信息。我已经在用户级安全向导中尝试了各种组合,但由于某种原因,我的表单显示为空白,除非我授予用户执行任何操作的完全访问权限。有任何想法吗?顺便说一句,我使用的是 Access 2003。

没有正确的解决方案

其他提示

您可以作出MDE,并把它给你的用户。如果你这样做,用户将无法看到任何东西,但您所提供的用户界面。

如果你的表是在相同的Access数据库的形式和查询,您首先需要“数据库拆分”成前端和后端。参见:

http://databases.about.com/od/tutorials/ss /splitaccessdb.htm

有关如何做到这一点的信息。前端包含一切,但表。后端包含的表。前端被连接到使用在前端“链接的表的”对象后端表。

一旦数据库被分割,在Access中打开的前端,并通过选择工具/数据库实用程序创建MDE /请从菜单栏中MDE文件。 MDE的是你提供给用户的东西。他们打开它,他们将任何其他数据库的相同方式,不同之处在于他们没有设计任何的对象。

请确保您有在前端定义AutoExec宏,这样当MDE被用户打开时,它有一个入口点。用户看不到任何的MDE的对象,因此,如果您没有AutoExec宏开第一种形式,什么都不会发生,当他们试图打开MDE。

如果你需要允许用户用文件/打开对话框中连接到后端数据库来管理MDE链接表的能力,看下面的文章:

http://www.mvps.org/access/tables/tbl0009.htm

当然,这一切都不排除使用者从开口后端数据库。如果需要更强的安全性,可以升迁后端数据库到SQL Server Express。这里更多的信息:

http://office.microsoft.com/en-us/access /HA102755371033.aspx

您正在寻找的是 RWOP 查询。这意味着“在所有者许可下运行”。

为了使其正常工作,假设您已经在前端和后端数据库上运行了安全向导,并且已经删除了用户读取表的权限,然后您将创建一个已保存的查询作为表单的记录源。在查询的属性中,默认情况下将其设置为“用户的”RUN PERMISSIONS”。将其更改为“所有者的”并保存查询。该查询将以查询所有者对基表拥有的任何权限运行。如果您以具有完全权限的管理员身份运行,则需要将已保存查询的权限设置为只读(或者在对表具有只读访问权限的用户登录下创建查询 - 这要容易得多做前者)。

一些注意事项:

  1. 用户级安全性很棘手。如果您错过了 ULS 安全白皮书中概述的哪怕一个步骤,您的应用程序将无法得到保护。测试此方法的方法是使用默认工作组文件打开 Access,然后查看是否可以访问以默认管理员用户身份登录的数据库中的对象。如果你能做到,那么你就在某个地方犯了错误。

  2. 用户级安全性任何人都可以破解。这并不意味着它没有用,只是意味着它不是防弹的。我不太担心这一点,因为我认为安全既是技术问题,也是人的问题——你必须给予员工足够的权限来完成他们的工作,并且你相信他们不会滥用这些权限你已经给了他们。

  3. 如果您运行的是 Access 2007 并使用 ACCDB 格式,则无法使用 RWOP 查询,因为 ACCDB 格式不支持 Jet 用户级安全性。不过,如果您使用 MDB 格式,那么它在 A2007 中就可以正常工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top