【问题标题】:Always encrypted database始终加密的数据库
【发布时间】:2018-11-16 10:54:31
【问题描述】:

我们需要为所有数据库配置始终加密功能。我们想在 Master 数据库中创建通用的 Column Master Key,以便我们可以将 CMK 链接到服务器上的所有数据库。但是我们无法将在主数据库中创建的 CMK 链接到所有数据库。我们需要在每个数据库中单独创建主密钥。有什么方法可以在主数据库中创建 CMK 并引用服务器上的所有数据库。

【问题讨论】:

    标签: always-encrypted


    【解决方案1】:

    列主键是每个数据库的对象,即您不能在数据库之间共享它。但是,它只不过是元数据,即存储实际密钥(证书)的指针。使用 Always Encrypted,数据库无权访问实际的加密密钥。它们存储在外部密钥存储(Windows 证书存储、Azure Key Vault)中。因此,您需要做的是通过在其余数据库中注册现有证书来复制(复制)现有证书。只需将现有 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 加密您想要的列。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-12-15
      • 1970-01-01
      • 2017-05-05
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多