2008-09-08 13 views
2

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

我在寻找的是一种让数据只能编辑的方法,如果他们使用我分发给他们的已编译的.mde文件。我知道我可以只为普通人群读取数据,并且可以选择用户进行编辑。

有没有一种方法,我可以让ms-sql使数据可编辑只有当他们通过我的罐头mde访问它?

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


@Jake,
是,它使用的形式。我想要做的只是当我启动我的启动板/ mainmenu窗体时,让它切换用户一次。

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

@no one general,
现在它的安全性通过默默无闻。我已经使用特殊的.mdb做了报告,可以让他们读取数据,但不会更新它。他们不知道如何通过ODBC连接重新连接到表。稍微更多的MS访问/数据库识别用户可以通过我在几秒钟内完成的任务 - 还有一些人认为自己是DBA,所以他们最终会弄清楚。

回答

2

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

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

这可以被嗅探,但是对于许多应用来说就足够了。

1

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

相关问题