gpt4 book ai didi

ms-access - 如何控制用户对 Access 数据库的权限?

转载 作者:行者123 更新时间:2023-12-04 09:57:13 27 4
gpt4 key购买 nike

允许一个用户对本地网络上的 MS Access 数据库进行写 Access 而其他所有人只读 Access 的最简单方法是什么?

我信任我的用户,但不幸的是,一旦取消选择表的行,Access 就会保存对数据的更改。无需用户要求保存更改即可保存意外击键。

最佳答案

关于控制用户对 Jet 数据存储的权限的一些想法:

  • 如果您真的想锁定事物,您永远不会使用 Jet 来管理它,因为它本质上是易受攻击的,因为用户必须具有对 MDB 文件的 WRITE Access 权限。
  • 如果您满足于控制前端应用程序中数据的权限,您可以提供不同的前端(一个用于 WRITE 用户,一个用于 READ-ONLY)。
  • 如果您不使用 ACCDB 格式,则可以使用 Jet 用户级安全性。如果您真的想锁定对数据的 Access ,这是一项非常复杂的技术——您必须严格遵守 Jet 安全白皮书中的所有说明,否则您的数据将向任何拥有标准 Jet 工作组文件的人开放。即使你完成了,它也是可以破解的(虽然不是不花钱购买破解软件)。顺便说一句,Access 2007 之前的数据库密码完全没用,而且很容易破解。 Access 2007 通过提高数据加密级别来增强安全性,但是数据库密码会导致很多问题,并且不允许您拥有多个级别的 Access 权限(除非您提供具有不同密码的两个不同前端 - 参见。 #2)。
  • 如果您只想使用 Jet ULS 来控制前端的 Access ,您可以将您的用户添加到组中,然后在您的前端 UI 对象(即表单)中检查组成员身份,并授予 WRITE 权限的用户位于提供该级别 Access 权限的用户组中。执行此操作的最简单方法,假设您拥有比具有 WRITE 权限的用户更多的 READ-ONLY 用户是让 READ-ONLY 用户以默认管理员用户身份登录(即,您对他们的设置不做任何操作),并让 WRITE用户以具有 WRITE 权限的组中的用户身份登录。换句话说,如果他们没有以用户“admin”的身份登录,他们就拥有完全的 WRITE Access 权限。
  • 另一种选择是使用 NTFS 安全组。可以在 Access Web 上找到该 API 代码。 ,但它确实需要 Windows 管理员为您实现。同样,您将限制前端应用程序中的 Access ,而不是实际限制后端 MDB 中的用户权限。

  • 只有 Jet ULS 实际上允许您阻止只读用户(尚未破解您的工作组文件)编辑您的数据。所有用户都必须能够通过网络 Access 您的后端 MDB,但是即使不跳过实现 Jet ULS 的流程,您也可能使他们难以 Access 数据。这里有一些步骤可以做到这一点(是的,所有这些都是“默默无闻的安全”的一种形式,只会减慢决心破解您的后端的只读用户的速度):
  • 右键单击后端的每个表并打开 HIDDEN 属性。这也可以在代码中完成(请参阅帮助中的 SetHiddenAttribute)。自然地,如果最终用户将他们的 Access 选项设置为显示隐藏的表,这不会有任何作用。但是大多数最终用户并不知道这一点,如果您的用户在运行时运行您的应用程序,他们将没有选择权。
  • 将后端数据库的启动属性更改为不显示数据库窗口并且不使用特殊键。您可以在“AllowBypassKey”的帮助主题中找到设置启动属性的代码。
  • 在您的后端,使用一个命令 Quit 创建一个名为 AutoExec 的宏。在禁用特殊键的情况下,无法阻止该宏的执行,并且一旦用户尝试打开后端(即使他们按住 SHIFT 键,即绕过所有启动例程的标准击键) ,数据库(和 Access 实例)将关闭。

  • 现在,所有这些事情都可以由知道自己在做什么的人来完成。如果你给我一个实现了这些东西的后端,我会在大约 5 分钟内完成,只需在另一个 Access 数据库中运行代码来更改所有这些启动属性以授予我 Access 权限。

    但是您的最终用户可能没有那种水平的专业知识。任何这样的用户可能应该是 WRITE 用户,不是吗? :)

    是的,当然——所有这些东西都很容易被任何知道如何破解的人破解。但是,对于拥有合适工具的人来说,在几秒钟内闯入您的房子也很容易。这并不意味着你不锁门,即使它不是防盗的防弹保护。

    另一个考虑因素是,如果您仅向用户提供 Access 运行时而不是完整的 Access,他们将无法撤消后端 MDB 中的任何这些设置。

    最后一个:

    安全不仅仅是一个技术问题——事实上,大部分都是人的问题。为了让人们完成他们的工作,您必须在一定程度上信任他们,让他们可以 Access 您的数据。例如,对于不可信的系统管理员的问题,没有技术解决方案,完全保护您的数据的唯一方法是根本不让他们 Access 它。

    关于ms-access - 如何控制用户对 Access 数据库的权限?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/529225/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com