始终加密数据库



我们需要为所有数据库配置"始终加密"功能。我们想在Master数据库中创建通用的列主密钥,这样我们就可以将CMK链接到服务器上的所有数据库。但我们无法将在master DB中创建的CMK链接到所有数据库。我们需要在每个数据库中单独创建主密钥。是否有任何方法可以在master数据库中创建CMK并引用服务器上的所有数据库。

列主密钥是每个数据库对象的,即不能在数据库之间共享它。然而,它只不过是元数据,即存储实际密钥(证书(的指针。使用"始终加密",数据库无法访问实际的加密密钥。它们存储在外部密钥存储(Windows证书存储、Azure密钥保管库(中。因此,您需要做的是通过在其余数据库中注册来复制(复制(现有证书。只需将现有CMK编写为CREATE COLUMN MASTER KEY语句,并在每个数据库中执行即可:

CREATE COLUMN MASTER KEY [CMK_Auto1]
WITH
(
KEY_STORE_PROVIDER_NAME = N'MSSQL_CERTIFICATE_STORE',
KEY_PATH = N'CurrentUser/my/2CC027B4FCA85D4244B528E8CA5F73D1EBB18C69'
)
GO

这将在每个数据库中创建一个新的CMK,但所有数据库都将使用相同的证书来加密数据。然后使用现有的CMK加密所需的列,该CMK是使用上面的脚本创建的。

相关内容

  • 没有找到相关文章

最新更新