我的公司对Access + MySQL应用程序进行了相当广泛的使用,如果我发布了源代码,可能会在Daily WTF上看到一些显着的stream量。 用户及其权限的pipe理已经失控,我似乎花费越来越多的时间来处理这些问题,或者试图弄清楚为什么有人看不到他们应该看到的东西。
它最初设置为在一个仓库中由三个用户使用。 它现在已经被四个州的二十多个用户所使用,很快就会增加更多的function,并且这些function已经与用户以大约10比1的比例增加了…实际的核心应用程序并不坏,但是pipe理用户是一个痛苦。 Access对数据本身是一个很好的前端,它存储在我们总部的MySQL后端。 用户在卫星分支处有Cisco VPN盒,而且这一点也很好。 范围从简单的仓库运输logging到成熟的客户关系pipe理/企业资源计划…呃,我想你可以称之为解决scheme。 也许是乳液。 如果我有预算,我会打电话给SAP,告诉他们有。 恐怕在可预见的将来,这个可能性已经不存在了。
遵循Google的指示(并不总是最安全的做法),我使用Access中的“用户级别安全向导”为不同的用户分配用户名和密码,当我以4-5个用户和3个活跃用户。 但现在很笨拙。 我最深切的愿望是希望有一些方法来validation用户身份,并根据Active Directory用户名和密码分配权限angular色。 我被告知这是不可能的。 几个谷歌search没有什么值得注意的。
我推测,应该可以使用Active Directory获得某种authentication框架,因为VBA具有指向Windows中各种API的链接。 但是,这是值得的时间和麻烦? 有没有人得到这个工作,或者我可能炸毁不仅我的WTF值得的应用程序,而且域?
我知道这是可能的,但很less有Access开发者似乎正在这样做。 如果有人写了代码,我会自己使用它,但不需要它自己写。
关键概念是,您可以通过使用ADO的LDAP查询访问AD信息。 有没有办法强制执行Access对象的权限,但你当然可以控制基于AD成员资格的应用程序stream/演示文稿。 看到这个线程的起点。 此外,还有一个关于此的知识库文章解释了LDAP方法。
顺便说一句,只要你不需要AD特定的function(如组织单位),你根本不需要使用AD。 您可以使用常规API调用来获取组成员信息。 看到这个Stackoverflow的一些代码build议的方向去(我不能validation代码,因为它看起来相当椭圆,即不是API声明,但它提供了基本概念)。
在这个级别上直接与AD进行交互是不可能的。 最好你能够直接做的是分配基于AD帐户的文件权限。 通过VBA需要花费一点努力,但是肯定不会超出理解的范围。 我想说你应该在处理之前做一个非常稳定的ROI分析。