如何在 SQL Server 身份验证中使用始终加密访问表?

问题描述 投票:0回答:1
  1. 在 Azure SQL Server 上工作
  2. 我使用 Azure AD 访问 Key Vault,并生成了列主密钥和列加密密钥,以将 Always Encrypted 应用于特定表
  3. 因此,如果从 SSMS 登录 Azure Active Directory - Universal with MFA 的 Always Encrypted Allowance 设置,加密表将被正常解密和查询。
  4. 我正在添加和管理特定用户以进行 SQL Server 身份验证。这是为了与后端连接。
  5. 已向添加的用户授予以下权限。
    VIEW ANY COLUMN MASTER KEY DEFINITION
    VIEW ANY COLUMN ENCRYPTION KEY DEFINITION
  6. 通过访问 SQL Server 身份验证来测试 SSMS 中添加的用户时,出现以下错误
Failed to decrypt column 'UserId'.
Failed to decrypt a column encryption key using key store provider: 'AZURE_KEY_VAULT'.
Verify the properties of the column encryption key and its column master key in your database. 
The last 10 bytes of the encrypted column encryption key are: 'XX-XX-XX-XX-XX-XX-XX-XX-XX-XX'.

Key Vault 已经拥有我的帐户的 Key 权限,因此没有错误,但是为 SQL Server 身份验证创建的用户帐户没有 Key Vault 访问权限,因此似乎出现错误,但我不知道确切的错误。

引用了以下所有链接。

sql-server azure-sql-database ssms
1个回答
0
投票

如何在 SQL Server 身份验证中使用始终加密访问表?

在 SQL Server 身份验证中使用始终加密访问表

  • 确保将密钥存储在 Key Vault 中的 AD 用户已添加到 Microsoft Entra ID 中。
  • 确保向用于在密钥保管库中存储密钥的 AD 用户授予“解密”、“签名”、“获取”、“UnwrapKey”权限。
  • 使用 SQL 身份验证检查连接时启用始终加密 enter image description here
  • 并在其他属性中添加列加密设置=已启用,如下所示 https://i.imgur.com/pBJDtK1.png

这里我创建了SQL用户,并赋予他查看加密表的权限。 enter image description here

这里我得到解密的列值: enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.