问题标签 [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.
azure - 列加密设置=启用在链接服务(Azure 数据工厂)中不起作用
我正在尝试实现一个执行存储过程活动的自定义点网活动。
我知道 ADF 已经内置了StoredProcActivity
. 但我想插入一个已经加密的表(使用 Always Encryption 提供程序作为 Azure Key Vault)
要始终解决方法,使用 Azure Key Vault 进行加密要求连接字符串如下所示
我构造的东西是简单的,而创建一个AzureSqlLinkedService
. 我已经用Column Encryption Setting=enabled
aalue 添加到我的连接字符串中。实际上,我的连接字符串是这样的:
但是,我得到了一个错误
实体配置失败:无法连接到链接服务。指定的连接字符串无效。
pdo - MS SQL 2016 PHP 始终加密
这可能还为时过早 - 有没有人有一个连接到 MS SQL 2016 数据库并检索“始终加密”列并以纯文本解密的 PHP 示例?我可以毫无问题地检索二进制加密列(PDO 或 ODBC),但不能检索纯文本版本。插入/更新“始终加密”列也很方便。
谢谢
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 应用程序的服务器上。
请建议,如果我在证书安装中遗漏了什么。我们是否需要编辑已安装证书中的某些属性?
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,并将注册的应用程序添加到我的密钥库(访问策略)。
为什么我会面临这种异常行为,比如一次成功,一次失败?
感谢您的回应,
杰恩德兰
azure - 如何从 sql server 中的“始终加密”列中解密 asp.net Web 应用程序中的列
我们使用 sql server 2017 中的始终加密向导在表中实现了列级加密,并且 CMK 存储在 Azure 密钥保管库中。您能否告诉如何在使用 asp.net Web 应用程序时解密列值。
谢谢。
php - 从 php 7.1 插入始终加密的字段 sqlserver 2016
我正在使用 PHP、IIS 和 SQL Server 2016 作为后端。我一直在使用加密功能。为此,我能够以纯文本形式选择数据。但无法将数据插入表中。我正在使用这样的代码。
我收到这样的错误。
可以请任何人告诉我哪里做错了。
sql-server - SQL Server 2016 在已发布的 IIS 上始终加密超时
当我尝试将我的 asp.net mvc 应用程序发布到启用“始终加密”的本地 (pc) iis 时,我遇到了奇怪的问题。
当我尝试在本地 IIS(不是 express)上使用 EF6 访问数据库时,我的应用程序保持超时:
但是,如果我尝试使用 Visual Studio 2017 访问和调试我的 asp.net mvc 应用程序,则可以完美访问“始终启用加密”的数据库而不会超时。
而且我也可以毫无问题地使用 SQL Management Studio 访问它。
两者(短信和 ASP.NET Web 配置)都使用此配置。
注意:我使用的是 ASP.NET MVC 5 和 EF 6,SQL Server 2016 开发人员版。
对不起,我的英语不好。
更新: 我尝试使用 .NET Framework 数据提供程序来查看是否有任何线索可以帮助我解决此问题,使用以下代码:
上面的代码告诉我这个错误:
现在,有了这种错误,我知道我必须这样做:)
- 将应用程序池的身份更改为之前生成证书的“用户”。
- 导出 currentuser 证书(由始终加密使用)并导入到您要用作应用程序池身份的用户。
现在它起作用了!
EF 应该抛出某种像 .NET 数据提供者一样清晰的错误,而不是让我感到困惑的超时失败@_@
更新(1): 现在的问题是如何使用它(证书)与默认的 ApplicationPoolIdentity 而不是自定义帐户?
更新(2): 我已经完成了jakub 的建议,但仍然没有运气。
谢谢
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 列,我的应用程序似乎不喜欢这些列。
有什么想法/建议吗?
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 文件的位置是什么?
问候, 桑杰
entity-framework - NVARCHAR(MAX) Always Encrypted 和 EF6 在更新时抛出错误
在始终加密的字段上使用 EF6 更新 NVARCHAR(MAX) 正在发生“冲突”异常。这是可以避免的吗?
尝试通过最新的 SSMS 更改数据类型,并且还出现“冲突”错误。似乎现在我已经加密了我根本无法更改表的列。