停止使用 ODBC 通过 Access 修改 .NET 应用程序的 SQL Server DB?
我们有一个 .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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
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.