web-dev-qa-db-ja.com

暗号化されたSQLデータベースを1つのAzureサブスクリプションから別のAzureサブスクリプションにコピーする

Azure SQLデータベース全体を1つのサブスクリプションから別のサブスクリプションにコピーする必要があります。

私が抱えている課題は、対称キーを持つ証明書があり、それを.bacpacファイルにエクスポートしようとすると、次のエラーが発生することです。

SQL71626(証明書/対称キーはMicrosoft Azure SQL Database v12ではサポートされていません)

すべてのITと同様に、これを行う方法はおそらく101通りあり、多くのサイトがいくつかのオプションを説明しています(ただし、暗号化とそれに対処するための最良の方法について言及したものはありません)。

いくつかの追加情報:宛先サブスクリプションは既に存在しますSQLサーバーがあり、必要に応じてさらに追加できます。

1
RGI

はい、SQLデータベースを暗号化して1つのAzureサブスクリプションから別のAzureサブスクリプションにコピーできます。ただし、Azure SQL Serverとともにデータベースを移動する必要があります。データベース自体だけではありません。回避策として私の手順に従ってください。

私は以下の手順でこれをうまくテストしました:

  1. サブスクリプション1新しいリソースグループ、空のAzure SQL ServerおよびAzure SQLデータベースを作成します。
  2. 証明書と対称鍵を作成します。 Microsoftのドキュメントの例。 証明書 および 対称キー

    CREATE CERTIFICATE Shipping04   
      ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y'  
      WITH SUBJECT = 'Sammamish Shipping Records',   
      EXPIRY_DATE = '20201031';  
    GO  
    
    CREATE SYMMETRIC KEY JanainaKey09   
     WITH ALGORITHM = AES_256  
     ENCRYPTION BY CERTIFICATE Shipping04;  
    GO   
    
  3. ステージング領域と同じサブスクリプションに別のリソースグループを作成します。新しいAzure SQL Serverを作成し、バックアップが利用可能になったらデータベースをコピーします。これは、リソースを移動すると、移動後にソースで使用できなくなるためです。

 Restore-AzSqlDatabase `
-FromPointInTimeBackup `
-PointInTime (Get-Date).AddMinutes(-10) `
-ResourceGroupName $Database.ResourceGroupName `
-ServerName $secondaryServerName `
-TargetDatabaseName $secondarydatabaseName `
-ResourceId $Database.ResourceID `
-Edition "Premium" `
-ServiceObjectiveName "P1" }
  1. Azure SQL Serverと更新されたデータベースを別のサブスクリプションに移動します。既存のリソースグループに移動して、新しいリソースグループを作成できます。使用する Move-AzResourceコマンド。詳細 ここ および ここ
  2. 次に、データベースを既存のSQL Serverにコピーします。
  3. 手順4でリソースを削除します。

データベースのみを移動しようとすると、このエラーメッセージが表示されます。

"properties": {
        "statusCode": "BadRequest",
        "serviceRequestId": null,
        "statusMessage": "{\"error\":{\"code\":\"InvalidResourceMoveRequest\",\"message\":\"The list of resources in move definition cannot be null or empty.\"}}"
    },
3
SqlWorldWide

SQLPackage.exeはデータベースのエクスポートに使用され、対称キーをサポートしていません。 copy データベースを使用できる場合は、コピー操作によって作成されたデータベースに対称鍵と証明書をドロップします。その後、そのデータベースのコピーをbacpacとしてエクスポートできます。

0
Alberto Morillo