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

Posted

技术标签:

【中文标题】停止 .NET 应用程序的 SQL Server DB 可以通过使用 ODBC 的 Access 进行修改?【英文标题】:Stopping .NET app's SQL Server DB being modifiable via Access using ODBC? 【发布时间】:2011-05-18 09:33:45 【问题描述】:

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

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

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

我们如何锁定它,以便无法通过 Access 等进行修改,而应用程序仍可在桌面 .NET 应用程序中正常运行?

【问题讨论】:

【参考方案1】:

SQL 服务器允许您将执行权限分配给各个存储过程。如果所有允许的更新都通过您的存储过程,添加执行权限,并删除数据写入权限。

【讨论】:

那么使用Access执行存储过程就可以了吗? 我个人会使用防火墙来阻止除已批准的应用服务器之外的所有人访问 SQL 服务器。但是,如果业务需要具有 Access 的人员能够启动存储过程......

以上是关于停止 .NET 应用程序的 SQL Server DB 可以通过使用 ODBC 的 Access 进行修改?的主要内容,如果未能解决你的问题,请参考以下文章

Apache HTTP Server 在 SQL Server 上调用后停止工作

调用 SQL Server 存储过程的 SqlCommand 超时

本地计算机上的SQL Server(MSSQLSERVER)服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止

Sql server 2005 服务启动很快又停止

SQL Server启动和停止服务的三种方法

SQL server 服务管理器总是自动停止,怎么回事