我有一个 ms-access 应用程序,它通过 ODBC 连接访问 ms-sql 数据库。我试图强制我的用户更新数据 仅有的 通过应用程序部分,但我不关心他们是直接读取数据还是通过自己的自定义 ms-access 数据库(他们使用它来创建临时报告)。

我正在寻找一种方法,使数据仅在使用我分发给他们的已编译 .mde 文件时才可编辑。我知道我可以使数据仅供一般人群读取,并可供特定用户编辑。

有没有办法让 ms-sql 使数据可编辑,只有当他们通过我的罐装 mde 访问它时?

想一想,有没有办法让 ms-access 以不同的用户身份登录数据库(或在连接后更改登录名)?


@杰克,
是的,它使用表格。我想做的只是当我弹出启动板/主菜单表单时切换用户一次。

@彼得,
这确实是我前进的方向。我还没有确定的是如何切换到第二个 ID。我不太担心密码被嗅探,用户都是内部用户,并且位于内部 LAN 上。如果他们可以嗅出该密码,那么他们当然可以嗅出我的特权 ID。

@一般来说没有人,
现在它的安全性是默默无闻的。我为用户提供了一个特殊的 .mdb 来进行报告,让他们读取数据,但不能更新数据。他们不知道如何通过 ODBC 连接重新链接到表。稍微懂一点 ms-access/DB 的用户可以在几秒钟内绕过我所做的事情 - 并且有一些人想象自己是 DBA,所以他们最终会弄清楚的。

有帮助吗?

解决方案

有一种方法可以做到这一点,对内部用户有效,但可能会被黑客攻击。您为每个用户创建两个 ID。一种是具有只读访问权限的报告 ID。这是用户知道的 ID:弗雷德/我的密码

第二个是可以进行更新的ID。该 ID 是 Fred_app / mypassword_mangled。他们通过 Fred 登录到您的应用程序。当您的应用程序访问数据时,它使用应用程序 ID。

这可以被嗅探,但对于许多应用程序来说这已经足够了。

其他提示

您的应用程序是否允许链接表更新或是否通过表单?听起来您使用具有不同角色的集中用户的想法是可行的方法。是的,您可以更改用户,但我可能会引入更多编码,一旦您开始添加越来越多的代码,其他解决方案(存储过程等)可能听起来更有吸引力。

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