我知道 Microsoft 尚未指定任何在 Core 内支持 Always Encrypted 的计划。
但是,经典 .NET Framework(4.5 及以上版本)支持这一点。
我们的 Core 2.1 项目对 Always Encrypted 的使用仅限于两个简单的查询,除了从 Core 2.1 降级之外,我们愿意采取其他途径来使用它。
有许多远程方法可以解决这些问题,但它们涉及远程处理(WCF 或另一个经典 .NET 的 REST)或通过 Service Fabric Actor(我们之前使用过)。
有没有干净的进程内方法来做到这一点?例如,通过 ODBC 连接这两个查询或类似的查询?
注意:我们在 Windows 上运行。
根据微软文档 https://learn.microsoft.com/en-us/sql/connect/odbc/using-always-encrypted-with-the-odbc-driver?view=sql-server-2017 latest ODBC https://learn.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017驱动程序支持始终加密。以下代码有效。
using System;
using System.Data.Odbc;
namespace ConsoleApp2
{
class Program
{
static void Main(string[] args)
{
using (var connection = new OdbcConnection(
"Driver={ODBC Driver 17 for SQL Server};DSN=SQL2016;Server={SQL2016};Trusted_Connection=yes;ColumnEncryption=Enabled;Database=AndreyTest;"))
{
using (var cmd = new OdbcCommand("select SSN from TestTable", connection))
{
connection.Open();
Console.WriteLine("Connected");
Console.WriteLine("SSN: " + Convert.ToString(cmd.ExecuteScalar()));
Console.ReadLine();
connection.Close();
}
}
}
}
}
如果我从连接字符串中删除“ColumnEncryption=Enabled”,输出将变为“SSN:System.Byte[]”,即 SSN 未解密。
我希望这个能帮上忙!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)