【发布时间】:2020-09-01 16:36:05
【问题描述】:
目前我正在使用 Azure 云。我想设置一个 AzureSQL 数据库并使用 AlwaysEncrypted 来确保数据“始终加密”;-)。此外,我想设置能够连接到数据库以及写入记录的 AzureFunctions。
我已经设置了 AzureSQL 数据库,但我不知道如何使用它。我开始了两次尝试:
- 直接在 SSMS 中建表,在表中填入数据,创建密钥并使用向导对其进行加密。这完全正常,只有在连接到数据库时设置“AlwaysEncrypted”复选框,我才能看到纯数据。
- 我的第二次尝试是将“始终加密”直接包含在查询中。我尝试了以下方法:
CREATE COLUMN MASTER KEY CMK_test_1
WITH (
KEY_STORE_PROVIDER_NAME = 'AZURE_KEY_VAULT',
KEY_PATH = '<PATH_TO_AZURE_KEY_VAULT>'
)
CREATE COLUMN ENCRYPTION KEY CEK_test_1
WITH VALUES
(
COLUMN_MASTER_KEY = CMK_test_1,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = <VALUE>
)
Create Table dbo.AlwaysEncryptedTest
(
ID int identity(1,1) PRIMARY KEY
, FirstName varchar(25) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256',
COLUMN_ENCRYPTION_KEY = CEK_test_1) not NULL
, LastName varchar(25) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256',
COLUMN_ENCRYPTION_KEY = CEK_test_1) not NULL
, City varchar(25) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256',
COLUMN_ENCRYPTION_KEY = CEK_test_1) not NULL
, StreetName varchar(25) COLLATE Latin1_General_BIN2 ENCRYPTED WITH (
ENCRYPTION_TYPE = RANDOMIZED,
ALGORITHM = 'AEAD_AES_256_CBC_HMAC_SHA_256',
COLUMN_ENCRYPTION_KEY = CEK_test_1) not NULL
)
我知道我必须使用应用程序将记录放入数据库,但我找不到可以帮助我这样做的教程或其他东西。我在 Microsoft 网站上找到了一些 C# 解释,但这并没有帮助我完成这项工作。在最好的情况下,我会在 python 中编写连接。
感谢任何帮助。
最好的 P
【问题讨论】:
标签: python azure azure-sql-database always-encrypted