Sql server 禁用通过SQL Server Management Studio访问SQL Server数据库

Sql server 禁用通过SQL Server Management Studio访问SQL Server数据库,sql-server,ssms,Sql Server,Ssms,为这篇冗长的帖子提前道歉,我正在尽可能地澄清。是否有方法禁用用户/Windows广告组通过SQL Server Management Studio(SSMS)访问数据库 我有一个使用SQLServer2005数据库的桌面应用程序。应用程序在用户登录到计算机时运行(不幸的是,我们无法改变这一点,否则这将很简单)。数据库允许使用组(但也适用于用户)访问用户所需的适当模式和对象。用户拥有(并且需要)选择、插入、更新和删除数据的能力,以完成其流程 应用程序对用户输入执行一系列验证和审核步骤,以确保用户输

为这篇冗长的帖子提前道歉,我正在尽可能地澄清。是否有方法禁用用户/Windows广告组通过SQL Server Management Studio(SSMS)访问数据库

我有一个使用SQLServer2005数据库的桌面应用程序。应用程序在用户登录到计算机时运行(不幸的是,我们无法改变这一点,否则这将很简单)。数据库允许使用组(但也适用于用户)访问用户所需的适当模式和对象。用户拥有(并且需要)选择、插入、更新和删除数据的能力,以完成其流程

应用程序对用户输入执行一系列验证和审核步骤,以确保用户输入的数据(以及一些额外的业务处理)。用户可以打开SSM并通过查询编辑器进行这些更改,从而完全避免应用程序,这正是我们试图避免的。我正在寻找的是一种方法,可以阻止用户通过提供的应用程序以外的任何工具更新数据库

我发现了一些类似的帖子(包括),但这些帖子并没有完全涵盖这个问题,因为它们致力于限制用户访问或使用不同的登录


目前我能想到的唯一解决方案是有一组表,其中用户数据最初存放在这些表中,然后另一个进程接收这些数据,运行应用程序进程,然后将数据放入主/源表中。然后我可以限制用户对主表的访问。

这似乎是一个很好的解决方案。

感谢您的建议,我没有考虑应用程序角色。不幸的是,我们无法更改应用程序连接到数据库的方式(它是一个外部构建的系统),否则这将是理想的,如果您无法控制应用程序,那么您将无能为力。A可以检查应用程序名,但客户端应用程序自己设置了该名称,因此您不能信任它。您最好的选择可能是与您的供应商合作更新应用程序。感谢您的回复,并对延迟回复您表示歉意。如果无法完成,则无法完成:)。至少我们可以回到我们的审计师那里,如果你有审计师参与,那么你应该考虑使用任何其他工具的风险缓解计划。例如,如果您已经有一个自动化软件资产控制系统,您可以使用它来检测和报告“恶意”SSMS安装。或者,您可以使用审计和跟踪来报告“异常”活动。和往常一样,这在很大程度上取决于你愿意或需要付出多少努力来降低风险。