当前位置:  开发笔记 > 开发工具 > 正文

如何控制Access数据库的用户权限?

如何解决《如何控制Access数据库的用户权限?》经验,为你挑选了2个好方法。

允许一个用户写访问权限以及其他人对本地网络上的MS Access数据库进行只读访问的最简单方法是什么?

我相信我的用户,但不幸的是,只要取消选择表的行,Access就会保存对数据的更改.保存意外击键,用户不要求保存更改.



1> David-W-Fent..:

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

    如果你真的想锁定它,你永远不会用Jet管理它,因为它本身就容易受到攻击,因为用户必须拥有对MDB文件的WRITE访问权限.

    如果您满足于控制前端应用程序中数据的权限,则可以提供不同的前端(一个用于WRITE用户,另一个用于READ-ONLY).

    如果您不使用ACCDB格式,则可以使用Jet用户级安全性.如果您真的想要锁定对数据的访问权限,那么这是一项令人惊讶的复杂技术 - 您必须遵循Jet安全白皮书中的所有说明,或者您的数据将对使用标准Jet工作组文件的任何人开放.甚至一旦你完成,它是可以破解的(虽然不是没有花费$$$购买破解软件).顺便说一句,Access 2007之前的数据库密码完全无用且容易破解.Access 2007通过提高数据加密级别来增强安全性,但数据库密码会导致许多问题,并且不允许您具有多个访问级别(除非您提供两个不同的前端使用不同的密码 - 参见#2).

    如果您只想使用Jet ULS来控制前端的访问权限,则可以将用户添加到组中,然后检查前端UI对象(即表单)中的组成员身份,并向用户授予WRITE权限.在提供该级别访问权限的用户组中.最简单的方法是,假设您拥有比具有WRITE权限的用户更多的READ-ONLY用户,那就是让READ-ONLY用户以默认管理员用户身份登录(即,您没有为他们的设置做任何事情),并且拥有WRITE用户使用WRITE权限以组中的用户身份登录.换句话说,如果它们未以用户"admin"身份登录,则它们具有完全WRITE访问权限.

    另一种方法是使用NTFS安全组.用于此的API代码可在Access Web上找到,但它确实需要Windows管理员为您实施.同样,您将限制前端应用程序中的访问权限,而不是实际限制后端MDB中的用户权限.

只有Jet ULS实际上允许您阻止READ-ONLY用户(没有破解您的工作组文件)编辑您的数据.所有用户都必须具有对后端MDB的网络访问权限,但即使没有实现Jet ULS的跳跃,也可能使他们难以获取数据.以下是执行此操作的一些步骤(是的,所有这些都是"默默无闻的安全"形式,并且只会减慢确定要破解后端的READ-ONLY用户):

    右键单击后端的每个表,然后打开HIDDEN属性.这也可以在代码中完成(请参阅"帮助"中的SetHiddenAttribute).当然,如果最终用户将其Access选项设置为显示隐藏表,则不会执行任何操作.但大多数最终用户并不知道,如果您的用户在运行时运行您的应用程序,他们将无法选择.

    将后端数据库的"启动属性"更改为显示数据库窗口,并且使用特殊键.您可以在"AllowBypassKey"的"帮助"主题中找到用于设置启动属性的代码.

    在后端,使用一个命令Quit创建一个名为AutoExec的宏.禁用特殊键后,无法阻止执行此宏,并且只要用户尝试打开后端(即使他们按住SHIFT键,即绕过所有启动例程的标准击键) ,数据库(和Access的实例)将关闭.

现在,所有这些事情都可以被知道自己在做什么的人解开.如果你给了我一个实现这些东西的后端,我会在大约5分钟内进入它,只需在另一个Access数据库中运行代码来更改所有这些启动属性以便我访问.

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

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

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

最后一个:

安全不仅仅是一个技术问题 - 事实上,大部分问题都是人员问题.为了让人们完成工作,您必须在一定程度上信任他们,让他们访问您的数据.例如,对于不值得信任的系统管理员的问题没有技术解决方案,完全保护数据的唯一方法就是根本不给他们任何访问权限.



2> Dave Swersky..:

最简单的方法是使用共享权限.授予对组的写访问权限,并将必须写入该用户的用户放入该组中.将其他人放在阅读组中.当然,这假设您有一个Windows域.

这是一个站点,其中包含有关保护Access数据库的一些信息.它处理Access 2000,可能有更多版本的选项.

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有