次の方法で共有


Always Encrypted を使用したデータベースのエクスポートとインポート

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

この記事では、Always Encrypted で保護された列を含むデータベースをエクスポートおよびインポートする方法について説明します。

データベースをエクスポートすると、暗号化された列に格納されているすべてのデータが暗号化された形式 (ciphertext) でデータベースから取得され、結果として生成された BACPAC に入れられます。 生成された BACPAC には、Always Encrypted キーのメタデータも含まれます。

BACPAC をデータベースにインポートすると、BACPAC からの暗号化されたデータがデータベースに読み込まれ、Always Encrypted キーのメタデータが再び作成されます。

ソース データベース (エクスポートしたデータベース) に格納されている暗号化された列にクエリを実行するように構成されたアプリケーションがある場合、特別なことをしなくても、そのアプリケーションでターゲット データベース内の暗号化されたデータに対してクエリを実行することができます。これは両方のデータベースのキーが同じであるためです。

データベースのエクスポートおよびインポート方法の詳細については、以下をご覧ください。

暗号化された列を含むデータベースを移行するためのアクセス許可

次のアクセス許可が必要です。

  • ALTER ANY COLUMN MASTER KEYALTER ANY COLUMN ENCRYPTION KEY をソースデータベースに使用します。

  • ALTER ANY COLUMN MASTER KEYALTER ANY COLUMN ENCRYPTION KEYVIEW ANY COLUMN MASTER KEY DEFINITION、および VIEW ANY COLUMN ENCRYPTION DEFINITION はターゲット データベース上にあります。

データはエクスポートおよびインポート操作中も暗号化された状態を維持するため、暗号化された列用に構成された列マスター キーにアクセスする必要はありません。