停止使用 ODBC 通过 Access 修改 .NET 应用程序的 SQL Server DB?

发布于 2024-11-07 15:13:41 字数 419 浏览 0 评论 0原文

我们有一个 .NET 2.0 winforms 应用程序,它使用 Windows 身份验证连接到 SQL Server 2005 数据库。所有数据库修改都是使用从应用程序调用的存储过程完成的。这工作得很好,用户只能做他们的角色允许的事情。

然而,我们发现任何有权使用该应用程序的用户理论上都可以启动 MS Access 并使用 ODBC 连接到数据库,并修改他们希望在数据库中保存的任何记录。

我们在 Active Directory 中创建了一个安全组,使其成为 SQL Server 中的登录名,然后使其成为数据库中具有能够使用该应用程序的正确权限的用户。使用 db_denydatareader 和 db_denydatawriter 阻止其他域用户。

我们如何锁定这一点,以便无法通过 Access 等进行修改,同时应用程序仍然可以从桌面 .NET 应用程序正常运行?

We have a .NET 2.0 winforms app that connects to a SQL Server 2005 database using Windows Authentication. All the database modifications are done using stored procedures which are called from the app. This works fine and users are only permitted to do things that their role permits.

However, it has occurred to us that any user with permission to use the app could theoretically fire up MS Access and connect to the database using ODBC and modify any record they wish on the database.

We have created a Security Group in Active Directory, made this a login in SQL Server and then made this a user in the database with the correct rights to be able to use the app. Other domain users are blocked using db_denydatareader and db_denydatawriter.

How do we go about locking this down so modifications via Access etc. are not possible, whilst the application still functions correctly from the desktop .NET app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

染墨丶若流云 2024-11-14 15:13:41

SQL Server 允许您为各个存储过程分配执行权限。如果所有允许的更新都是通过存储过程进行的,请向这些过程添加执行权限,并删除数据写入者权限。

SQL server allows you to assign execute permissions to individual stored procedures. If all allowed updates are through your stored procedures, add execute permissions to these, and remove data-writer privileges.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文