1

我阅读了以下博客以在我的应用程序中实现加密概念,但在我的应用程序中,我使用代码优先迁移概念在 Azure SQL 数据库上执行 CRUD 操作。但是这个博客用 Azure SQL 数据库上的普通 SQL 查询解释了加密概念。

始终加密:保护 SQL 数据库中的敏感数据并将加密密钥存储在 Azure Key Vault 中

https://docs.microsoft.com/en-us/azure/sql-database/sql-database-always-encrypted-azure-key-vault

如何为 Web 应用程序中实现的代码优先迁移方案实现始终加密的概念?

4

1 回答 1

1

正如这个官方博客提到的使用 EF6 的 Always Encrypted:

Entity Framework 6 从一开始就没有设计为与 SQL Server 2016 的 Always Encrypted 功能一起使用。但是,为了使该功能与现有代码尽可能透明地工作,我们付出了很多努力。

对于 Code First 迁移方案:

迁移将需要大量调整——实体框架不知道列主密钥和列加密,也无法对其进行建模,因此这需要用户进行补偿。

您可以从迁移代码中删除加密属性,ALTER TABLE以添加加密列,然后是Update-Database。并且建议在使用加密列时使用 Migrations over Initializers,这可能包括使用初始数据为数据库播种。更多细节,你可以参考这个博客

于 2017-01-31T08:29:39.593 回答