导出和导入使用 Always Encrypted 的数据库

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

本文介绍如何导出和导入包含使用 Always Encrypted 保护的列的数据库。

导出数据库时,系统会以加密形式(已加密文本)从数据库中检索加密列中存储的所有数据并将其放入生成的 BACPAC 中。 生成的 BACPAC 还包含始终加密密钥的元数据。

将 BACPAC 导入数据库时,BACPAC 中的加密数据将加载到数据库中,并将重新创建始终加密密钥元数据。

如果应用程序配置为查询源数据库(已导出的数据库)中存储的加密列,则无需执行任何特殊操作,即可让应用程序查询目标数据库中的加密数据,因为这两个数据库中的密钥相同。

有关如何导出和导入数据库的详细信息,请参阅:

迁移包含加密列的数据库所需的权限

需要以下权限:

  • ALTER ANY COLUMN MASTER KEYALTER ANY COLUMN ENCRYPTION KEY 在源数据库。

  • ALTER ANY COLUMN MASTER KEYALTER ANY COLUMN ENCRYPTION KEYVIEW ANY COLUMN MASTER KEY DEFINITIONVIEW ANY COLUMN ENCRYPTION DEFINITION目标数据库。

无需访问为加密列配置的列主密钥,因为数据在导出和导入作期间保持加密。