使用计算机密钥和 SQL CLR 代码加密 SQL 服务器数据 - SQL Express

本文关键字:SQL 加密 服务器 数据 Express 代码 CLR 计算机 密钥 | 更新日期: 2023-09-27 17:56:47

我正在调查是否可以使用 SQL CLR 代码透明地加密 SQL Express 数据库中的数据来执行加密和解密。

我目前有一个系统,其中某些字段需要加密/解密,并且加密是在客户端上的 .Net 代码中进行的。性能非常惊人 - 使用 AES 加载 1000 条记录,每条记录有 4 个字段,最多需要几分钟时间。

我使用的是实体框架,所以我不想使用存储过程 - 因此我无法将密码作为参数传递给存储过程。

使用 .Net 计算机密钥加密/解密数据是否可行?(即在SQL Clr中实现AES,它将使用机器密钥作为加密密钥)。在这种情况下,如果将数据库复制到另一台计算机,则无法查看实际数据,因为计算机密钥将不同。

我了解,如果用户可以访问数据库并使用(例如)登录SSMS 他们将能够从他们喜欢的内容中选择 *,但是我将依靠 SQL Server 安全性来防止这种情况。主要问题是我无法保护 mdf 和 ldf,如果用户可以访问这些,我不希望他们能够查看数据。

使用计算机密钥和 SQL CLR 代码加密 SQL 服务器数据 - SQL Express

SQL Server支持加密数据的过程。例如EncryptByPassPhrase

在这里,您可以找到在 SQL Server 2005 中使用加密的手册。