使用 Always Encrypted 與 [SQL Server 匯入和匯出精靈] 將資料移轉到資料行或從中移轉

適用於:SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體

SQL Server 匯入和匯出精靈是一種工具,可讓您將資料從來源複製到目的地。 本文件描述在來源和/或目的地為 SQL Server 資料庫,且該資料庫包含以 Always Encrypted 保護的資料行時,如何使用 [SQL Server 匯入和匯出精靈]。

移轉案例

透過 [SQL Server 匯入和匯出精靈],您可以實作下列案例,將資料移轉到加密資料行或從中移轉出。

在移轉時加密純文字資料

如果您的資料來源包含純文字資料,而您的目的地是包含加密資料行的 SQL Server 資料庫,您可以使用 [SQL Server 匯入和匯出精靈] 來擷取來源的純文字資料,將其加密並將加密資料 (加密文字) 複製到目的地資料庫中的加密資料行。 在此移轉案例中,資料來源可以是 [SQL Server 匯入和匯出精靈] 支援的任何資料存放區。 例如,檔案、SQL Server 資料庫或另一個資料庫系統中的資料庫。

若要確保 [SQL Server 匯入和匯出精靈] 可以加密資料,您必須為目的地資料庫連接啟用 Always Encrypted,且必須能夠存取可保護目的地資料庫資料行資料的金鑰。 如需詳細資訊,請參閱針對資料庫連接啟用和停用 Always Encrypted在移轉期間加密或解密資料的權限

在移轉時解密加密資料

如果您要移轉 SQL Server 資料庫的已加密資料庫資料行中所儲存資料,您可以設定 [SQL Server 匯入和匯出精靈] 來解密資料,並將解密的 (純文字) 資料複製到目的地,這可以是 [SQL Server匯入和匯出精靈] 支援的任何資料存放區,例如檔案、SQL Server 資料庫或另一個資料庫系統中的資料庫。

若要確保 [SQL Server 匯入和匯出精靈] 可以解密資料,您必須為來源資料庫連接啟用 Always Encrypted,且必須能夠存取可保護來源資料庫資料行資料的金鑰。 如需詳細資訊,請參閱針對資料庫連接啟用和停用 Always Encrypted在移轉期間加密或解密資料的權限

在移轉時重新加密資料

如果您要從來源 SQL Server 資料庫中的加密資料行,將資料複製到相同或另一個 SQL Server 資料庫中的加密資料行,您可以設定 [SQL Server 匯入和匯出精靈],以便在從來源擷取資料之後將其解密,並在插入目的地資料庫中的加密資料行之前將其重新加密。 如果目標資料行的結構描述 (例如,資料行資料類型、加密類型和資料行加密金鑰) 與來源資料行的結構描述不同,請使用這個方法。

若要確保 [SQL Server 匯入和匯出精靈] 可以加密及解密資料,您必須為來源資料庫連接與目的地資料庫連接啟用 Always Encrypted,且必須能夠存取可保護來源和目標資料庫資料行資料的金鑰。 如需詳細資訊,請參閱針對資料庫連接啟用和停用 Always Encrypted在移轉期間加密或解密資料的權限

在移轉期間讓資料保持加密

如果您要從來源 SQL Server 資料庫中的加密資料行,將資料複製到相同或另一個 SQL Server 資料庫中的加密資料行,且目標資料行使用與來源資料行完全相符的結構描述 (包括相同的資料類型、加密類型和資料行加密金鑰) 時,您可以設定 [SQL Server 匯入和匯出精靈] 來擷取來源資料行中的加密文字,並將加密資料 (加密文字) 插入目標 SQL Server 資料庫中的加密資料行。

在此案例中,您可以使用支援 SQL Server 的任何資料提供者,以連線到來源或目的地 SQL Server 資料庫。 如果您使用支援 Always Encrypted 來連線到目的地資料庫的提供者,則必須確定已針對資料庫連接停用 Always Encrypted。 如需詳細資訊,請參閱針對資料庫連接啟用和停用 Always Encrypted

您還必須確定已設定 [SQL Server 匯入和匯出精靈] 用來連線到目的地資料庫的資料庫主體 (使用者),並將 ALLOW_ENCRYPTED_VALUE_MODIFICATIONS 選項設為 ON。 此選項會在大量複製作業中抑制伺服器上的密碼編譯中繼資料檢查,讓精靈不需解密資料就能在目的地資料庫中大量插入加密資料。 如需詳細資訊,請參閱將加密資料大量載入 Always Encrypted 所保護的資料行

針對資料庫連接啟用和停用 Always Encrypted

如果您的移轉案例需要 [SQL Server 匯入和匯出精靈] 能夠加密和/或解密資料,您必須使用支援 Always Encrypted 的資料提供者來設定來源 SQL Server 資料庫連接和/或目的地 SQL Server 資料庫連接。 您還必須針對來源和/或目的地資料庫連接啟用 Always Encrypted。

如果您不需要此精靈來加密或解密該連線上的資料,則可以使用任何資料提供者進行連線。

[SQL Server 匯入和匯出精靈] 中的下列資料提供者支援 Always Encrypted。

在移轉期間加密或解密資料的權限

若要加密或解密 SQL Server 來源或目的地資料庫中所儲存的資料,您需要具有來源資料庫的 VIEW ANY COLUMN MASTER KEY DEFINITIONVIEW ANY COLUMN ENCRYPTION KEY DEFINITION 權限。 您也需要金鑰存放區權限,才能存取及使用您的資料行主要金鑰。 如需金鑰管理作業所需金鑰存放區權限的相關詳細資訊,請移至建立及儲存 Always Encrypted 的資料行主要金鑰,並尋找與您的金鑰存放區相關的區段。

下一步

另請參閱