阻止用户访问应用程序数据库

时间:2010-12-06 12:57:20

标签: sql-server

我们的客户之一正在直接在数据库中更改数据。

由于我们有API,我们希望客户使用它。如果他们坚持手动更改数据,我们已经威胁不支持他们的解决方案。

我的查询是,我们是否有技术方法可以阻止从我们的应用程序以外的任何其他方式访问数据库?

这是一个sql server数据库,我们的客户拥有服务器并管理数据库服务器,所以基本上我们需要一种方法来锁定SA。

由于

2 个答案:

答案 0 :(得分:3)

首先......你不能:

  • 在服务器级别完全锁定sa或sysadmin权限
  • 在数据库级别锁定db_owner / dbo

现在我们已经清除了那个直接访问数据的人吗?

  • 如果您的意思是最终用户正在更改数据,那么您就会遇到安全问题:他们应该只能使用API​​,甚至无法连接。

  • 如果您的意思是系统管理员级用户(例如DBA或BOFH类型),那么可能是合理的原因。您的API是否支持所有操作?作为一名DBA,我不得不对写得不好的第三方应用程序进行开放式表格操作

  • 如果最终用户拥有系统管理员级别权限,那么您在客户公司中存在政治问题

编辑:

OP对他们的问题发表评论后...... sysadmin用户可以禁用触发器......

答案 1 :(得分:1)

你公开API吗?不应该在没有任何身份验证的情况下更改数据。我建议使用一些内部认证机制。一种基本的质询/响应协议,可确保传入的查询可以安全执行,或类似的东西。