导出和导入使用 Always Encrypted 的数据库
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
本文介绍如何导出和导入包含使用 Always Encrypted 保护的列的数据库。
导出数据库时,系统会以加密形式(已加密文本)从数据库中检索加密列中存储的所有数据并将其放入生成的 BACPAC 中。 生成的 BACPAC 还包含始终加密密钥的元数据。
将 BACPAC 导入数据库时,BACPAC 中的加密数据将加载到数据库中,并将重新创建始终加密密钥元数据。
如果应用程序配置为查询源数据库(已导出的数据库)中存储的加密列,则无需执行任何特殊操作,即可让应用程序查询目标数据库中的加密数据,因为这两个数据库中的密钥相同。
有关如何导出和导入数据库的详细信息,请参阅:
- 导出数据层应用程序
- 导入 BACPAC 文件以创建新的用户数据库
- 将 Azure SQL 数据库导出到 BACPAC 文件
- 将 BACPAC 文件导入到 Azure SQL 数据库中的数据库
- SqlPackage
迁移包含加密列的数据库所需的权限
你需要源数据库上的 更改任意列主密钥 和 更改任意列加密密钥 。 你需要目标数据库上的“更改任意列主密钥”、“更改任意列加密密钥”、“查看任意列主密钥定义”和“查看任意列加密定义”。
不需要可以访问为加密列配置的列主密钥,因为在导出和导入操作期间数据会保持加密。