Importer ou exporter une base de données Azure SQL Database en utilisant une liaison privée

S’applique à Azure SQL Database

L’exécution d’une importation ou d’une exportation via Azure PowerShell ou le portail Azure implique de définir Autoriser l’accès aux services Azure sur ACTIVÉ, sans quoi l’opération d’importation ou d’exportation échoue avec une erreur. Les utilisateurs veulent souvent effectuer une importation ou une exportation en utilisant un point de terminaison privé sans demander l’accès à tous les services Azure. Cet article explique comment importer ou exporter une base de données Azure SQL Database en utilisant Private Link avec l’option Autoriser l’accès aux services Azure définie sur DÉSACTIVÉE sur le serveur logique Azure SQL.

Notes

L’importation/exportation en utilisant une liaison privée pour Azure SQL Database est actuellement en préversion.

Une liaison privée d’importation/exportation de base de données est un point de terminaison privé managé par un service créé par Microsoft. Elle est utilisée exclusivement pour toutes les communications du processus d’importation/exportation de base de données, pour la base de données Azure SQL et pour les services Stockage Azure associés. Un point de terminaison privé géré par le service est une adresse IP privée au sein d’un réseau virtuel et d’un sous-réseau spécifiques. Le point de terminaison privé doit être approuvé manuellement par l’utilisateur dans le portail Azure pour le serveur et pour le stockage.

Diagram of Import Export Private link architecture.

Une liaison privée d’importation exportation peut être configurée via le Portail Azure, PowerShell ou l’API REST.

  1. Accédez à la page Vue d’ensemble du serveur logique Azure SQL dans lequel vous voulez importer la base de données. Sélectionnez Importer une base de données dans la barre d’outils.
  2. Dans la page Importer une base de données, cochez la case Utiliser une liaison privée. Screenshot from the Azure portal that shows how to enable Import Private link.
  3. Entrez le compte de stockage, les informations d’identification pour l’authentification, les détails de la base de données, puis sélectionnez OK.
  1. Accédez à la page Vue d’ensemble de la base de données Azure SQL que vous voulez exporter. Sélectionnez Exporter dans la barre d’outils.
  2. Dans la page Exporter une base de données, cochez la case Utiliser une liaison privée. Screenshot from the Azure portal that shows how to enable Export Private Link.
  3. Entrez le compte de stockage, les informations d’identification pour l’authentification, les détails de la base de données, puis sélectionnez OK.

2. Approuver des points de terminaison privés

  1. Accédez à Centre Private Link dans le portail Azure. Dans la barre de recherche Azure, recherchez « Private Link ».
  2. Accédez à la page Points de terminaison privés du Centre Private Link.
  3. Approuvez les points de terminaison privés que vous avez créés en utilisant le service Import/Export.

Approuver la connexion de point de terminaison privé sur Azure SQL Database

  1. Accédez au serveur logique Azure SQL qui héberge la base de données.
  2. Accédez à la page Mise en réseau sous Sécurité
  3. Sélectionnez l’onglet Accès privé.
  4. Sélectionnez le point de terminaison privé que vous souhaitez approuver.
  5. Sélectionnez Approuver pour approuver la connexion.

Screenshot from the Azure portal that shows how to approve Azure SQL Database Private Link.

Approuver la connexion de point de terminaison privé sur Stockage Azure

  1. Accédez au compte de stockage qui héberge le conteneur d’objets blob contenant le fichier .bacpac.
  2. Ouvrez la page Connexions de point de terminaison privé dans le menu Sécurité.
  3. Sélectionnez le point de terminaison privé pour le service Import/Export.
  4. Sélectionnez Approuver pour approuver la connexion.

Screenshot from the Azure portal that shows how to approve Azure Storage Private Link in Azure Storage.

3. Vérifier l’état de l’importation/exportation

  1. Une fois les points de terminaison privés approuvés, à la fois dans le serveur Azure SQL et dans le compte de stockage Azure, le travail d’importation ou d’exportation de base de données est lancé. Jusqu’à ce moment-là, les travaux seront en attente.
  2. Vous pouvez vérifier l’état des travaux d’importation ou d’exportation de base de données dans la page Historique d’importation/exportation sous la section Gestion des données de la page du serveur Azure SQL. Screenshot from the Azure portal that shows how to check Import Export Jobs Status.

Utilisez l’applet de commande New-AzSqlDatabaseImport pour soumettre une demande d’importation de base de données à Azure. Selon la taille de la base de données, l’importation peut prendre un certain temps avant d’aboutir. Le modèle de provisionnement basé sur DTU prend en charge les valeurs de taille maximale de sélection de base de données pour chaque niveau. Lorsque vous importez une base de données, utilisez l’une de ces valeurs prises en charge.

$importRequest = New-AzSqlDatabaseImport -ResourceGroupName "<resourceGroupName>" `
        -ServerName "<serverName>" -DatabaseName "<databaseName>" `
        -DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
        -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName `
                        -StorageAccountName "<storageAccountName>").Value[0]
        -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
        -Edition "Standard" -ServiceObjectiveName "P6" ` -UseNetworkIsolation $true `
        -StorageAccountResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourcegroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>" `
         -SqlServerResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>" `
        -AdministratorLogin "<userID>" `
        -AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)

Utilisez la cmdlet New-AzSqlDatabaseExport pour soumettre une requête d’exportation de base de données au service Azure SQL Database. Selon la taille de votre base de données, l'opération d'exportation peut prendre plus ou moins longtemps.

$importRequest = New-AzSqlDatabaseExport -ResourceGroupName "<resourceGroupName>" `
        -ServerName "<serverName>" -DatabaseName "<databaseName>" `
        -DatabaseMaxSizeBytes "<databaseSizeInBytes>" -StorageKeyType "StorageAccessKey" `
        -StorageKey $(Get-AzStorageAccountKey -ResourceGroupName $resourceGroupName `
                        -StorageAccountName "<storageAccountName>").Value[0]
        -StorageUri "https://myStorageAccount.blob.core.windows.net/importsample/sample.bacpac" `
        -Edition "Standard" -ServiceObjectiveName "P6" ` -UseNetworkIsolation $true `
        -StorageAccountResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourcegroups/<resource_group_name>/providers/Microsoft.Storage/storageAccounts/<storage_account_name>" `
         -SqlServerResourceIdForPrivateLink "/subscriptions/<subscriptionId>/resourceGroups/<resource_group_name>/providers/Microsoft.Sql/servers/<server_name>" `
        -AdministratorLogin "<userID>" `
        -AdministratorLoginPassword $(ConvertTo-SecureString -String "<password>" -AsPlainText -Force)

Les API existantes servant à effectuer des travaux d’importation et d’exportation ont été améliorées pour prendre en charge les liaisons privées. Consultez Importer une API de base de données.

Limites

Actuellement, la liaison privée pour l’importation/exportation a les limitations suivantes :

  • Pour utiliser une liaison privée avec une importation/exportation, la base de données utilisateur et le conteneur d’objets blob du Stockage Azure doivent être hébergés sur le même type de cloud Azure. (par exemple, soit les deux dans Azure Commercial, soit les deux sur Azure Gov). L’hébergement sur plusieurs types de cloud n’est pas pris en charge.

  • L’importation et l’exportation d’une base de données à partir d’Azure SQL Managed Instance à l’aide de PowerShell ne sont pas prises en charge pour le moment.

  • Une liaison privée d’importation/exportation ne doit pas être utilisée quand la base de données utilisateur ou le compte de stockage Azure sont protégés par des verrous de ressources.

  • Une approbation manuelle de la nouvelle connexion de point de terminaison privé est nécessaire pour effectuer l’opération d’exportation. Après avoir démarré l’exportation, accédez à « Connexions en attente » dans le Centre Private Link et approuvez les connexions, dont l’affichage peut prendre plusieurs minutes.

  • L’importation à l’aide d’une liaison privée ne prend pas en charge la spécification d’une redondance de stockage de sauvegarde lors de la création d’une base de données et la création s’effectue avec la redondance de stockage de sauvegarde géo-redondante par défaut. Pour contourner ce problème, commencez par créer une base de données vide avec la redondance de stockage de sauvegarde souhaitée en utilisant le portail Azure ou PowerShell, puis importez le fichier .bacpac dans cette base de données vide.

  • L’importation en utilisant l’API REST avec une liaison privée peut être effectuée seulement sur une base de données existante, car l’API utilise des extensions de base de données. Pour contourner ce problème, créez une base de données vide avec le nom souhaité, puis appelez l’API REST d’importation avec une liaison privée.

Étapes suivantes