【问题标题】:How to encrypt localdb mdf file without thirdParty tool?如何在没有第三方工具的情况下加密 localdb mdf 文件?
【发布时间】:2019-08-21 12:34:14
【问题描述】:

我使用了 SQL Server 2017 本地数据库。我创建了一个 Windows 应用程序以及如何保护 mdf 文件。如何在没有第三方工具的情况下加密 localdb MDF 文件?

【问题讨论】:

  • 我希望本机 SQL Server 加密能够工作,但我在这里不使用本地数据库,而且微软之前让我感到惊讶。见SQL Server Encryption。 FWIW,“加密数据库”和“加密 mdf 文件”并不完全相同。
  • 您试图保护数据免受谁的侵害——一个好奇的最终用户在您的应用程序之外打开数据库,或者某个人拉出硬盘并现在正试图读取脱机副本?后者可以通过 BitLocker 或 Always Encrypted 进行保护,但前者要求您自己进行加密(并且总是可以被足够精明的用户绕过,因为他们可以做任何您的应用程序可以做的事情)。

标签: c# sql-server


【解决方案1】:

所有版本的 SQL Server 2017 都具有始终加密功能,您可以使用该功能来加密特定数据,但可能需要对应用程序进行一些修改。 SQL Server 2017 企业版具有透明数据加密功能,可让流程更加无缝。

您可以在此处阅读有关 Always Encrypted 功能的更多信息:https://docs.microsoft.com/en-us/sql/relational-databases/security/encryption/always-encrypted-database-engine?view=sql-server-2017

【讨论】:

  • 但它在 SQL Server 的 Express Enterprise Edition 中工作,但我只使用本地数据库。而且我还需要完整的带加密的 mdf 文件。
  • “SQL Server Express LocalDB 是 Express 的轻量级版本,它具有所有可编程功能,在用户模式下运行,并且具有快速、零配置的安装和简短的先决条件列表。”如果没有第三方工具或为 MDF 编写自己的加密/解密,您将无法加密 MDF。您能做的最好的事情就是加密 MDF 中的所有数据。
  • 我收到此错误“透明数据加密在此 SQL Server 实例的版本中不可用。”
  • 是的,您使用的是 localdb,而不是企业版。您唯一的选择是加密数据库中的数据。除非您手动完成,否则您将无法完成整个文件。本质上,您必须解密数据库,打开连接,进行 crud 操作,关闭连接并重新加密数据库。您可以使用 .Net 中内置的加密对象来做到这一点,但如果有人在数据库打开时复制了您的数据库或使您的应用程序崩溃,他们就破坏了您的意图。
  • @GaryStewart 你能给我简单的加密建议步骤吗?
猜你喜欢
  • 1970-01-01
  • 2015-03-26
  • 2015-08-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-27
相关资源
最近更新 更多