0

背景:【无版权实施】

【无版权实施】我公司为不受政府版权保护的地区的客户开发库存控制应用。唯一的选择就是自己隐藏和保护东西。这里的竞争对手通常会复制其他公司的数据库并在其上构建前端,然后开始销售自己的应用程序。

问题

我们使用 MS SQL 服务器快速版和有时标准版。我们发现任何客户都可以停止 sql 引擎,从安装应用程序的 pc 复制文件,然后将该数据库文件附加到另一个系统中,他们拥有完整的 Windows 管理员权限,这样他们就可以充分探索我们的数据库。

我在寻找

是否有任何可靠的解决方案来保护我们的数据库设计被其他人查看。只有我们的应用程序可以通过我们在数据库中创建的用户进行连接?

过去我听说 sybase 自适应服务器有这样的功能,windows 用户无法访问它,用户存储在每个数据库本身中。如果有人没有存储在数据库中的用户密码,则无法登录。

谢谢

您的帮助将不胜感激。

4

1 回答 1

0

正如 Sean 所建议的,您最好自己托管或托管在 Azure SQL DB 等云服务中。仍然不能保证,但要获得所有东西要困难得多,但比其他方法更容易锁定。与现场部署的数据相比,管理和处理用户对受限数据的请求也容易得多。

除此之外,如果部署在客户的站点上,真的没有切实可行的方法来做到这一点。即使您锁定了所有登录名和用户(无论 Windows 或 SQL Server 登录名),因此没有客户登录名具有管理员级别权限,您仍然无法阻止他们复制数据库文件,将其安装在他们拥有管理员权限的不同实例上权限,甚至只是将其作为应用程序运行以重置 SA 密码。如果他们有物理访问权限,则所有赌注都将取消。这只是知识和时间的问题。

您可以通过加密整个数据库来使其更难,并且只有您的应用程序拥有密钥。然后,用户必须要么破解加密算法(如果做得好的话很难)或你的应用程序持有密钥(更容易但仍然不是微不足道的)。两者的正确操作都很昂贵,而且它们实际上只是延迟,而不是阻止访问。您还将介绍其他问题,例如密钥管理和轮换,如果处理不当,可能会导致客户无法访问其数据。

您可以留下 cookie 跟踪(例如,处于活动状态的函数和表格,看起来像是应用程序的一部分,并且与应用程序的有用部分紧密耦合,但实际上与应用程序的核心功能无关)。这使得以后更容易起诉,但如果该国没有保护知识产权的法律,则只有在拥有此类法律的国家/地区重复使用或转售该软件时,这才有用。

于 2015-09-08T21:33:41.840 回答