【问题标题】:MS Access permissions with Active Directory users具有 Active Directory 用户的 MS 访问权限
【发布时间】:2009-09-15 08:32:03
【问题描述】:

是否可以使用 Active Directory 用户设置访问权限?
编辑:总体目标是允许某些用户查看某些表并拒绝其他用户的此权限。我想知道是否可以使用活动目录用户来完成。

【问题讨论】:

标签: ms-access active-directory


【解决方案1】:

取决于访问权限的含义。访问用户级别的安全性不会以任何方式与 Active Directory 交互。 ACC: Microsoft Access Security FAQ Available in Download Center 建议您多读几遍此FAQ。我必须承认我从来没有完全理解它。另见ACC2000: Overview of How to Secure a Microsoft Access Database

现在您可以做的是读取登录用户和组等的 Active Directory 数据。然后使用一些本地表将各种 AD 组以及登录用户 ID 映射到 Access 中的各种对象和菜单项,您可以以这种方式控制访问。但是请注意,精明的用户等可能会破坏本地表。

我找到的最有用的 URL 是以下新闻组发布的 need help on get list of W2K ad Domain (fqdn) by using VB Options 我在研究这个主题时保留了一页笔记,但它们可能有用也可能没有用。如果需要,我可以发布它们。

【讨论】:

    【解决方案2】:

    我同意 Tony 和 Philippe 发布的内容。我只是想补充一点:

    如果您真的需要安全性,那么 Jet/ACE 后端将无法为“安全性”一词的任何重要定义完成这项工作。 Jet ULS 可破解且相当容易,因此对于具有基本编程能力的任何人来说都是如此。因此,如果您正在寻找数据安全性,Philippe 是正确的,您应该选择不同的数据库引擎。

    但如果您只想在前端应用程序中控制 ACCESS,您有三个选择:

    1. 在您的用户数据库中维护几个表以及每个对象的权限。

    2. 实施 Jet 用户级安全性。

    3. 使用 AD 用户/组代替 Jet ULS。

    这些选择都不是天衣无缝的。

    所有这些都意味着您的前端必须经过编程来处理这些问题。

    如果您出于安全原因限制访问,那么使用与 Windows 安全性集成的数据库引擎(即 SQL Server)是有意义的。

    如果您这样做只是为了简化程序流程,并在运行时调整应用程序以适应特定用户的需求,那么您不一定需要数据存储的安全性,因为您需要一种方法来保持跟踪谁在使用数据库以及他们所属的组,然后他们应该有权访问应用程序的哪些部分(其次是访问级别、读/写、只读等)。

    多年来,我一直将 Jet ULS 用于最后一个目的,但从未对它完全满意,因为让它易于用户管理并不容易。与 AD 集成将是一个不错的选择,但这意味着管理您的应用程序的人需要具有管理 AD 用户的权限。这可能不是您友好的邻居系统管理员愿意同意的。

    另一方面,如果您最终需要后端安全性和前端访问控制,则无法击败使用 Windows 安全性通过 AD 进行一站式购物的 SQL Server 后端。

    【讨论】:

      【解决方案3】:

      根据您最近几天在 Access 上发布的几个问题,在我看来,您应该考虑将表(而不是表单)从 Access/mdb 文件切换到 SQLExpress 服务器,所有这些安全问题都可以易于管理。升级您的数据库,将您的连接字符串作为公共变量添加到您的客户端应用程序中(或在 xml 文件、本地表或任何其他可以保存该字符串的内容中,即使是访问文件的额外属性也可以通过 currentDb 来解决问题.createProperty 方法),然后进行真正的客户端-服务器配置。

      【讨论】:

      • 不一定。例如,如果他希望采购部门的用户只查看采购表格,当然也可以访问采购表格,那么他如何有效地做到这一点?如果用户打开一个访问应收帐款表的应收帐款表单,Access 是否会返回一个错误代码,他会在代码中处理该错误代码?
      • @Tony,一旦有了用户组,您就可以将服务器上的表(或者更好的视图)与这些组相关联。是的,当无法访问视图时,Access 可以轻松返回错误消息。您可以开发一个更复杂的解决方案,其中一个表格列出表单,另一个列出用户,以及一个多对多链接表格,说明谁可以访问什么。但是你最终会在服务器级别设置权限,因为这将是你更强的安全级别
      • 我不需要高安全性,我只是在检查是否有一种简单的方法来保护我的数据库,如果没有 - 这甚至都不重要。它只是一个简单、临时、快速的公司内部应用程序。如果是别的,我肯定会使用 sqlExpress。我不是“他”(那是给 tony toews 的)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-14
      • 2014-10-09
      • 1970-01-01
      • 1970-01-01
      • 2013-01-16
      • 2021-12-21
      • 1970-01-01
      相关资源
      最近更新 更多