我正在一家基于产品的公司中工作,并将为SQL Server 2014 Express版提供我们的软件。我希望您的专家对安全性发表意见。
问题:当我们在客户端PC上安装数据库时,他们可能可以通过将MDF文件附加到另一台服务器来查看我们的数据库架构。(我认为,通过数据库对象名称和数据,其他公司可以轻松识别我们的工作流程并可以轻松开发软件)因此,我希望使用某种类型的加密或文件系统解决方案来防止用户获取数据库文件。是的,因为我们使用的是Express Edition,所以我们无法使用可用的SQL Server加密选项。
有趣的是,这是我公司目前所做的,但是用户必须具有特殊的服务器角色才能打开实际的架构。
该角色将与他们的登录名链接在一起。创建用户登录名时,我们将使用诸如ght02%username%之类的神秘登录名,而不仅仅是Windows凭据。这意味着,如果他们通过Windows Auth登录,则无权访问该架构。
我知道的获取MDF的唯一方法是,如果它们已分离数据库或服务已停止。同样,这可以通过禁用服务器停止服务器来管理,并且如果他们没有权限,他们将无法分离。
虽然最有可能是更好的选择。
仅是我的两分钱。
也有this的副本
仅当客户端在您要复制文件的盒子上具有最小权限时,您才能阻止客户端复制文件
我会建议使用SQLAZURE数据库,它开始于每月5美元,我相信标准定价层是最合适的(每月:大约30美元)。通过这种方式,您还可以肯定,您的模式是安全的
您可以尝试使用此第三方软件:https://www.database-encryption.com/数据库只能在安装了该软件的位置进行还原/附加。需要加密密钥才能查看数据库中的任何信息,数据库大小最大为200MB(我目前正在使用此软件)是免费的]
如果您愿意考虑使用第三方产品,则至少有两个可以满足您的要求,即可以保护SQL数据库免受客户的侵害。一个是我们的:Encryptionizer for SQL Server。另一个是DBEncrypt。他们的工作方式却大不相同。 Encryptionizer位于SQL Server进程和OS之间,而DBEncrypt使用旧的Detours SDK将自身插入到内存中的SQL进程中。