2010-12-06 63 views
0

我们有一个问题,我们的客户之一是直接在数据库中更改数据。防止用户访问应用程序数据库

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

我的查询是,有没有一种技术方法可以防止从我们的应用程序以外的任何其他任何东西访问数据库?

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

谢谢

+0

澄清:这是谁直接访问数据库管理员用户。他们正在编辑表格上的业务数据。我们正在考虑的一个选择是在所有表格上放置触发器,但这需要复制我们希望保留在应用代码 – stevenrcfox 2010-12-06 13:19:00

+0

中的复杂业务规则和工作流程。根据您的许可数据评论,最合理的选择是加密数据库上的敏感数据并解密应用程序中的数据。 – 2010-12-06 15:28:29

回答

3

第一件事...你不能:

  • 在所有锁定SA或系统管理员权限在服务器级别
  • 在数据库级别

锁定的db_owner/DBO现在我们已经清除了那个,谁直接访问数据?

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

  • 如果您是指系统管理员级别的用户(例如DBA或BOFH类型),那么可能有合法的原因。您的API是否支持所有操作?作为一名DBA,我不得不这样做打开的表术上写的不好的第三方应用程序,然后现在

  • 如果最终用户拥有系统管理员级别权限,那么你在客户公司

内的政治问题编辑:

对他们的问题由OP评论后...管理员用户可以禁用触发器...

1

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