2

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

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

有没有一种方法可以让 ms-sql 使数据只有在他们通过我的罐装 mde 访问数据时才可编辑?

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


@Jake,
是的,它使用表单。我要做的只是在我弹出启动板/主菜单表单时切换用户一次。

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

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

4

2 回答 2

2

有一种方法可以对内部用户有效,但可能会被黑客入侵。您为每个用户创建两个 ID。一种是具有只读访问权限的报告 ID。这是用户知道的 ID:Fred / mypassword

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

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

于 2008-09-08T17:21:04.610 回答
1

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

于 2008-09-08T17:31:28.017 回答