问题标签 [always-encrypted]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1115 浏览

azure - 列加密设置=启用在链接服务(Azure 数据工厂)中不起作用

我正在尝试实现一个执行存储过程活动的自定义点网活动。

我知道 ADF 已经内置了StoredProcActivity. 但我想插入一个已经加密的表(使用 Always Encryption 提供程序作为 Azure Key Vault)

要始终解决方法,使用 Azure Key Vault 进行加密要求连接字符串如下所示

我构造的东西是简单的,而创建一个AzureSqlLinkedService. 我已经用Column Encryption Setting=enabledaalue 添加到我的连接字符串中。实际上,我的连接字符串是这样的:

但是,我得到了一个错误

实体配置失败:无法连接到链接服务。指定的连接字符串无效。

0 投票
1 回答
431 浏览

pdo - MS SQL 2016 PHP 始终加密

这可能还为时过早 - 有没有人有一个连接到 MS SQL 2016 数据库并检索“始终加密”列并以纯文本解密的 PHP 示例?我可以毫无问题地检索二进制加密列(PDO 或 ODBC),但不能检索纯文本版本。插入/更新“始终加密”列也很方便。

谢谢

0 投票
2 回答
3413 浏览

windows-services - 始终加密功能 - 无法解密列。从 Windows 服务应用程序调用

.NET 框架版本 = 4.6.2,数据库 = SQL Server 2016

应用类型 = Windows 服务

我们正在开发 SQL 2016 数据库中的“始终加密”功能,以对某些客户数据列执行加密。我们的 Web 应用程序是在 ASP.NET MVC 架构中构建的,并且可以很好地使用这个新功能。我们已将证书从数据库服务器复制并导入到 IIS Web 服务器。并且网络应用程序运行顺利。

但是,当我们尝试从运行在单独服务器上的 Windows 服务应用程序访问数据库时,它会引发以下异常。

无法解密列“ColumnX”。无法使用密钥存储提供程序解密列加密密钥:“MSSQL_CERTIFICATE_STORE”。加密列加密密钥的最后 10 个字节为:'76-34-51-DA-41-8F-52-D1-A1-EE'。键集不存在

我们已经将相同的证书以类似的步骤复制并导入到运行 windows-service 应用程序的服务器上。

请建议,如果我在证书安装中遗漏了什么。我们是否需要编辑已安装证书中的某些属性?

0 投票
2 回答
2105 浏览

c# - 密钥存储提供程序不能设置多次(始终使用 Azure 函数加密)

我已经实现了 TimeTriggerC# Azure 函数来运行存储过程以插入使用列加密加密的表(始终加密,AzureKey Vault 作为提供者)

对我来说,阻塞区域是我的函数 1 次成功运行,但又多次出错。所以我把成功之路作为一个罕见的案例

我面临的错误是

mscorlib:调用的目标已引发异常。System.Data:不能多次设置密钥存储提供程序。

我对此进行了一些调查它发生在行中

在函数中

当我试图更深入地研究错误的根本原因时,它会像

调用的目标已引发异常。---> System.InvalidOperationException : 密钥库提供程序不能设置多次。在 System.Data.SqlClient.SqlConnection.RegisterColumnEncryptionKeyStoreProviders(IDictionary`2 customProviders)

正如我上面提到的,我使用Azure Key Vault作为我的 Key Store Provider。我使用 AD 正确注册了我的 Keyvault,并将注册的应用程序添加到我的密钥库(访问策略)。

为什么我会面临这种异常行为,比如一次成功,一次失败?

感谢您的回应,
杰恩德兰

0 投票
0 回答
118 浏览

azure - 如何从 sql server 中的“始终加密”列中解密 asp.net Web 应用程序中的列

我们使用 sql server 2017 中的始终加密向导在表中实现了列级加密,并且 CMK 存储在 Azure 密钥保管库中。您能否告诉如何在使用 asp.net Web 应用程序时解密列值。

谢谢。

0 投票
1 回答
307 浏览

php - 从 php 7.1 插入始终加密的字段 sqlserver 2016

我正在使用 PHP、IIS 和 SQL Server 2016 作为后端。我一直在使用加密功能。为此,我能够以纯文本形式选择数据。但无法将数据插入表中。我正在使用这样的代码。

我收到这样的错误。

可以请任何人告诉我哪里做错了。

0 投票
1 回答
1247 浏览

sql-server - SQL Server 2016 在已发布的 IIS 上始终加密超时

当我尝试将我的 asp.net mvc 应用程序发布到启用“始终加密”的本地 (pc) iis 时,我遇到了奇怪的问题。

当我尝试在本地 IIS(不是 express)上使用 EF6 访问数据库时,我的应用程序保持超时:

超时图片@本地 IIS

但是,如果我尝试使用 Visual Studio 2017 访问和调试我的 asp.net mvc 应用程序,则可以完美访问“始终启用加密”的数据库而不会超时。

iis express 用 VS2017

而且我也可以毫无问题地使用 SQL Management Studio 访问它。

两者(短信和 ASP.NET Web 配置)都使用此配置。

注意:我使用的是 ASP.NET MVC 5 和 EF 6,SQL Server 2016 开发人员版。

对不起,我的英语不好。


更新: 我尝试使用 .NET Framework 数据提供程序来查看是否有任何线索可以帮助我解决此问题,使用以下代码:

上面的代码告诉我这个错误: 在此处输入图像描述

现在,有了这种错误,我知道我必须这样做:)

  1. 将应用程序池的身份更改为之前生成证书的“用户”。
  2. 导出 currentuser 证书(由始终加密使用)并导入到您要用作应用程序池身份的用户。

在职的

现在它起作用了!

EF 应该抛出某种像 .NET 数据提供者一样清晰的错误,而不是让我感到困惑的超时失败@_@


更新(1): 现在的问题是如何使用它(证书)与默认的 ApplicationPoolIdentity 而不是自定义帐户?

更新(2): 我已经完成了jakub 的建议,但仍然没有运气。 在此处输入图像描述

谢谢

0 投票
1 回答
1018 浏览

c# - 无法使用 Linq 插入 SQL Server AlwaysEncrypted 表

对此我绝对会发疯,所以请,任何建议都将受到欢迎。

我正在运行带有两个加密表的 SQL Server 2016:

hr_client

hr_grade

我已经设置了 Column Master 和 Column Encryption Keys(当前存储在 SQL Server 上)。我还设置了存储过程以从这两个表中插入和选择数据。数据按预期加密,并且可以使用存储过程插入和返回数据(所有工作都可以直接在 SSMS 中正常工作)。

为了访问数据,我创建了一个运行在我们内部 IIS Web 服务器上的 ASP MVC 应用程序。该应用程序的目标是 4.6.1,我使用 LinqToSql dbml 进行 SQL 连接和命令。连接字符串如下:

数据可以毫无问题地插入到 hr_grade 表中并从中选择。

但是,我只能从 hr_client 表中选择,并且 INSERT(直接或通过存储过程)因以下错误而失败:

现在我能看到的唯一明显区别是 hr_client 表有 NVARCHAR 列,我的应用程序似乎不喜欢这些列。

有什么想法/建议吗?

0 投票
1 回答
339 浏览

sql-server-2016 - 使用始终加密功能连接到 SQL Server 2016

我正在尝试在 SQL Server 2016 和 RHEL 7 中使用始终加密的列。

我已经创建了我的 DSN in /etc/odbc.ini

信息注册odbc.ini

我试图将列主密钥以 .crt 格式放入

我正在使用命令连接

我收到错误

Sqlcmd:错误:ReadAndHandleColumnData 内部错误(原因:读取列数据时出错)。
SqlState CE200,未找到密钥库提供程序 MSSQL_CERTIFICATE_STORE。确保已加载适当的密钥库提供程序库。

谁能帮我这个?似乎它没有拿起证书。如果是这种情况,那么要放置的 crt 文件的位置是什么?

问候, 桑杰

0 投票
0 回答
358 浏览

entity-framework - NVARCHAR(MAX) Always Encrypted 和 EF6 在更新时抛出错误

在始终加密的字段上使用 EF6 更新 NVARCHAR(MAX) 正在发生“冲突”异常。这是可以避免的吗?

尝试通过最新的 SSMS 更改数据类型,并且还出现“冲突”错误。似乎现在我已经加密了我根本无法更改表的列。