问题标签 [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 - 始终使用 Keyvault 加密 SQL Azure - 导出 CMK 证书
我正在使用始终使用 KeyVault 加密的方式加密我的 SQL azure 数据库。我在 Keyvault 中看到的是,CMK 是在 Keys 部分创建的。是否可以从中构造证书?或者我在哪里可以找到这个 CMK 证书?
azure - 从 Azure SQL 导出始终加密的数据
以下是环境详细信息:
我有一个 Azure SQL 数据库 V12 和另一个本地数据库 SQL Server 2016。我在第一个数据库 - DB1 的表上启用了始终加密。还创建了相同的表结构,我需要将加密数据从第一个数据库迁移到第二个数据库。
当我尝试将数据从 DB1 导出到 DB2 时出现错误
“不支持为加密源创建目标”。
该错误是因为用于加密 DB 1 的 CMK 和 CEK 位于 Azure-Key-vault 中。导出工具从未提供访问密钥库的选项。
如何将数据从 DB1 迁移到 DB2?
c# - 使用 LinqToSQL 在 SQL 表中使用加密列更新/插入行 - 始终加密
我正在尝试亲身体验 SQL Server 2016 的 Always Encrypt 功能。我正在使用现有的应用程序和数据库来执行此操作。
我有一个表 [User],我在其中使用“确定性”类型加密了“密码”列。我已经更改了连接字符串,并且能够检索所有行。我已经为这个表创建了存储库。
我正在尝试使用 InsertOnSubmit() 和 SubmitChanges() 使用 LinqToSQL 在此表中插入和更新行。
但是每当我尝试插入新行或更新现有行时,我都会收到错误消息:
消息 206,级别 16,状态 2,第 7 行操作数类型冲突:varchar 与使用 (encryption_type = 'DETERMINISTIC',encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256',column_encryption_key_name = 'CEK_Auto1',column_encryption_key_database_name = 'BRO_UAT') 加密的 varchar(20) 不兼容collation_name = 'Latin1_General_BIN2'
我已经阅读了使用存储过程和参数化解决问题的文章。但是,正如我之前提到的,这是一个现有的项目,我使用了 LinqToSql,不想更改代码。如果列未加密,则插入/更新工作正常!
我错过了一些设置吗?请指出我正确的方向。
azure - 未知的外部数据源类型 - 始终加密
我已经在本地创建了我的自签名证书并上传到 Azure Key Vault。这样我就可以将它用于我的始终加密(Azure SQL DB 中的列加密)
最初我遇到了Purge 问题并在这里解决了
继续我在执行加密操作时遇到错误
这是我的日志文件
主要错误是未知的外部数据源类型
更新
我可以使用标准定价层的其他 Azure DB 克服此错误
azure - 访问 Always Encrypted (azure Key Vault) 的权限级别
我正在尝试在 Azure 中创建列加密(通过始终加密向导)。我对这些场景有一个很大的疑问。
还有其他几种存储 CMK 的方法,例如 Windows Store、Azure Key Vault。
在 Windows 商店中,有两个选项User/LocalMachine,在
用户选项中,CMK 将适用于该特定本地计算机和该特定用户单独。(能够使用列加密设置进行解密 = 已启用)
作为本地计算机选项可以工作对于同一台机器中的所有用户。(能够使用Column Encryption Setting=Enabled进行解密)
我的疑问是,
当使用 Azure Key Vault 存储 CMK 时,谁能解密加密列?
我的理解是 有权访问(在访问策略下)Azure Key Vault 的用户只能解密加密列?那正确吗 ?
请任何人指导我
提前感谢,
杰伊
c# - 始终加密方法在移动(插入)Azure 数据库之前加密数据
我只是想在传输到 Azure SQL 之前有什么方法可以加密数据。
实际上我已经开发了一个 Azure Web App。我需要将数据加密到应用服务器本身的 Azure SQL DB 中。
我可以找到一些参考来加密 AzureDB 中的数据,例如Always Encryption、Symmetric Keys
但是所有引用都导致在 SQL Server 中加密数据(换句话说,数据将以纯文本形式从 App Server 传输到 SQL Server(通过插入查询),然后加密将在 SQL 中进行服务器)
所以,我想确保我的数据在发送到 Sql Server 之前应该被加密。
这将确保没有攻击者/黑客无法通过传输来破解我的数据
更新
我已经实现了 SSL 安全性,它可以保护 UI 和 App Server 之间的传输。但在这里我想保护 App Server 和 Azure SQL Server 之间的传输
查看此图以获得清晰的理解:
powershell - 始终加密 - 创建证书错误 windows server 2012
当我尝试使用以下 PS 脚本创建证书、列主密钥和列加密密钥时,它在 Windows 10 中工作正常
但在 Windows Server 2012 中出现错误。如果我删除以下内容:
并且-DNSName
只使用它只是创建列主密钥并在创建列加密密钥时抛出错误。
有人请提供适用于 Windows Server 2012 并创建证书、列主密钥和列加密密钥的正确语法?
c# - 使用始终加密的 AzureKey 保险库从客户端应用程序通过存储过程插入表
我创建了一个客户端应用程序,它使用 Always Encryption 执行所有加密和解密值。
我使用 Azure Key Vault 来存储我的密钥。我已经关注了这个。硬编码查询对我很有效(INSERT INTO ....)
但是当我尝试使用存储过程时,它不起作用。我已经提到过这个Stack Post。但不幸的是,解决方案/答案并没有解决我的问题。所以我决定提出一个新问题。
这是我的 C# 代码
当我为使用存储过程进行了一些更改时。它会抛出错误
附加信息:操作数类型冲突:char 与使用 (encryption_type = 'DETERMINISTIC', encryption_algorithm_name = 'AEAD_AES_256_CBC_HMAC_SHA_256', column_encryption_key_name = 'CEK_Auto1', column_encryption_key_database_name = 'TestDB') 加密的 varchar(20) 不兼容 collation_name = 'SQL_Latin1_General_CP1_CI
这是启用加密后的我的架构
(PS:我已经在我的连接字符串中启用了Column Encryption Setting=enabled。也尝试过EXEC sys.sp_refresh_parameter_encryption @name = '[dbo].[sp]'
- 都不适合我)
azure - 如何从 SSMS 2016 (Microsoft SQL Server) 注销?
我已经实现了 Always Encryption 来加密 Azure DB 中 Patient 表的 SSN 字段。(使用 Azure Key Vault 作为我的密钥存储提供程序)
我使用 SSMS 2016(13.0.16100.1) 作为客户端工具。
最初,我尝试为那个特定的 Patient 表执行简单的 select 语句。它带有签名的弹出窗口*(见下文)*。这样我就可以使用我的帐户登录以解密我的 SSN 列。
在这里,我经历了两种情况:
情况1
无法从当前凭据注销
假设我自己第一次输入了一个有效的凭据(谁可以访问解密密钥@ssn)
在这种情况下,这些凭据在内部保存了一些。我无法从我的凭据中注销。
最初我认为凭据是基于会话保存的。因此它仅适用于该特定会话。但它不是......
相同的凭据适用于不同的会话,即使我尝试关闭我的 SSMS 并在仍然使用旧凭据的另一个窗口中重新打开。
案例二
无法重新输入凭据
假设我第一次使用无效凭据签名(谁无权解密密钥@ssn)
在这种情况下,我无法解密SSN 列。所以再次在内部保存了一些凭据。
因此,如果我想使用我的有效凭据重新输入。我做不到。
我认为为了解决这两种情况,将有一个解决方案=>从当前凭据注销
PS:我知道我们还有另一个选项Login using Active Directory Password Authentication。但不幸的是,这仅用于配置的 Active Directory 管理员。但在我的组织中有超过 100 个成员。所以没有办法让至少 10 个成员使用 Active Directory 登录
更新1
sql-server - SQL Server 2016 Always Encrypted - 无法加密多个存储过程和视图引用的列
我正在尝试使用 SQL Server Management Studio 加密 varchar (empcode) 和 bigint 列,这些列被多个存储过程和视图引用。(在 SQL Server 2016 上使用 Always Encrypted)
它给我一个错误 SQL 71501 ->
(Object 1) 对 (Object 2) 有未解决的引用
我该如何克服这些问题?
谢谢