Rôles et exigences pour Azure Data Share

Cet article décrit les rôles et les autorisations nécessaires pour partager et recevoir des données à l’aide du service Azure Data Share.

Rôles et conditions requises

À l’aide du service Azure Data Share, vous pouvez partager des données sans échanger les informations d’identification entre le fournisseur de données et le consommateur de données. Pour le partage basé sur instantané, le service Azure Data Share utilise des identités managées (précédemment appelées MSI) pour s’authentifier auprès du magasin de données Azure.

Pour créer des partages dans Azure Data Share, un utilisateur a besoin des autorisations suivantes :

Partage de stockage et de lac de données

Type de banque de données Action Rôle sur le magasin de données source Rôle sur le magasin de données cible Remarque
Stockage Blob Azure Partager les données Contributeur de compte de stockage** **Au lieu de cela, vous pouvez créer un rôle personnalisé avec les actions de stockage nécessaires.
recevoir des données Contributeur de compte de stockage** **Au lieu de cela, vous pouvez créer un rôle personnalisé avec les actions de stockage nécessaires.
Attribuer automatiquement des autorisations MI pour partager des données Un rôle avec Microsoft.Authorization/role assignments/write* facultatif. Au lieu de cela, vous pouvez attribuer manuellement des autorisations MI.
Attribuer automatiquement des autorisations MI pour recevoir des données Un rôle avec Microsoft.Authorization/role assignments/write* facultatif. Au lieu de cela, vous pouvez attribuer manuellement des autorisations MI.
Azure Data Lake Storage Gen1 Partager les données Autorisations d’accès et en écriture sur les fichiers que vous souhaitez partager.
recevoir des données Non pris en charge
Attribuer automatiquement des autorisations MI pour partager des données Un rôle avec Microsoft.Authorization/role assignments/write* facultatif. Au lieu de cela, vous pouvez attribuer manuellement des autorisations MI.
Attribuer automatiquement des autorisations MI pour recevoir des données Non pris en charge.
Azure Data Lake Storage Gen2 Partager les données Contributeur de compte de stockage** **Au lieu de cela, vous pouvez créer un rôle personnalisé avec les actions de stockage nécessaires.
recevoir des données Contributeur de compte de stockage** **Au lieu de cela, vous pouvez créer un rôle personnalisé avec les actions de stockage nécessaires.
Attribuer automatiquement des autorisations MI pour partager des données Un rôle avec Microsoft.Authorization/role assignments/write* facultatif. Au lieu de cela, vous pouvez attribuer manuellement des autorisations MI.
Attribuer automatiquement des autorisations MI pour recevoir des données Un rôle avec Microsoft.Authorization/role assignments/write* facultatif. Au lieu de cela, vous pouvez attribuer manuellement des autorisations MI.

* Cette autorisation existe dans le rôle Propriétaire.

Pour plus d’informations sur le partage vers et depuis le stockage Azure, consultez l’article sur le partage et la réception de données à partir de Stockage Blob Azure et d’Azure Data Lake Storage.

Partage de base de données SQL

Pour partager des données à partir de SQL, vous pouvez utiliser l’une ou l’autre des options suivantes :

Pour recevoir des données dans SQL, vous devez attribuer des autorisations pour recevoir des données.

Authentification Microsoft Entra pour partager des données

Ces conditions préalables couvrent l’authentification dont vous aurez besoin pour qu’Azure Data Share puisse se connecter à votre instance Azure SQL Database :

  • Vous aurez besoin de l’autorisation d’écrire dans les bases de données sur SQL Server : Microsoft.Sql/servers/databases/write. Cette autorisation existe dans le rôle Contributeur.
  • Autorisations Administrateur Microsoft Entra SQL Server.
  • Accès au pare-feu SQL Server :
    1. Dans le Portail Azure, accédez à votre serveur SQL. Sélectionnez Pare-feu et réseaux virtuels dans le volet de navigation gauche.
    2. Sélectionnez Oui pour Autoriser les services et les ressources Azure à accéder à ce serveur.
    3. Sélectionnez +Ajouter une adresse IP cliente. L’adresse IP du client peut changer. Par conséquent, vous devrez peut-être ajouter à nouveau l’adresse IP de votre client la prochaine fois que vous partagerez des données à partir du portail.
    4. Cliquez sur Enregistrer.

Authentification SQL pour partager des données

Vous pouvez suivre la vidéo de démonstration pas à pas pour configurer l’authentification ou compléter chacune de ces conditions :

  • Autorisation d’écrire dans les bases de données sur SQL Server : Microsoft.Sql/servers/databases/write. Cette autorisation existe dans le rôle Contributeur.

  • Autorisation permettant à l’identité managée de la ressource Azure Data Share d’accéder à la base de données :

    1. Dans le Portail Azure, accédez au serveur SQL et attribuez-vous le rôle Administrateur Microsoft Entra.

    2. Connectez-vous à Azure SQL Database/Data Warehouse à l’aide de l’Éditeur de requête ou à SQL Server Management Studio avec l’authentification Microsoft Entra.

    3. Exécutez le script suivant pour ajouter l’identité managée de la ressource Data Share en tant que db_datareader. Connectez-vous avec Active Directory et non avec l’authentification SQL Server.

      create user "<share_acct_name>" from external provider;     
      exec sp_addrolemember db_datareader, "<share_acct_name>"; 
      

      Remarque

      <share_acc_name> est le nom de votre ressource Data Share.

  • Un utilisateur Azure SQL Database avec un accès « db_datareader » pour parcourir et sélectionner les tables ou les vues que vous voulez partager.

  • Accès au pare-feu SQL Server :

    1. Dans le portail Azure, accédez à SQL Server. Sélectionnez Pare-feu et réseaux virtuels dans le volet de navigation gauche.
    2. Sélectionnez Oui pour Autoriser les services et les ressources Azure à accéder à ce serveur.
    3. Sélectionnez +Ajouter une adresse IP cliente. L’adresse IP du client peut changer. Par conséquent, vous devrez peut-être ajouter à nouveau l’adresse IP de votre client la prochaine fois que vous partagerez des données à partir du portail.
    4. Cliquez sur Enregistrer.

Authentification pour recevoir des données dans SQL

Pour un serveur SQL sur lequel vous êtes l’administrateur Microsoft Entra, remplissez ces prérequis avant d’accepter un partage de données :

  • Azure SQL Database ou Azure Synapse Analytics (anciennement Azure SQL DW).
  • Autorisation d’écrire dans les bases de données sur SQL Server : Microsoft.Sql/servers/databases/write. Cette autorisation existe dans le rôle Contributeur.
  • Accès au pare-feu SQL Server :
    1. Dans le Portail Azure, accédez à votre serveur SQL. Sélectionnez Pare-feu et réseaux virtuels dans le volet de navigation gauche.
    2. Sélectionnez Oui pour Autoriser les services et les ressources Azure à accéder à ce serveur.
    3. Sélectionnez +Ajouter une adresse IP cliente. L’adresse IP du client peut changer. Par conséquent, vous devrez peut-être ajouter à nouveau l’adresse IP de votre client la prochaine fois que vous partagerez des données à partir du portail.
    4. Cliquez sur Enregistrer.

Pour un serveur SQL sur lequel vous n’êtes pas l’administrateur Microsoft Entra, remplissez ces prérequis avant d’accepter un partage de données :

Vous pouvez suivre la vidéo de démonstration pas à pas ou les étapes ci-dessous pour remplir les conditions préalables.

  • Azure SQL Database ou Azure Synapse Analytics (anciennement Azure SQL DW).

  • Autorisation d’écrire dans les bases de données sur SQL Server : Microsoft.Sql/servers/databases/write. Cette autorisation existe dans le rôle Contributeur.

  • Autorisation permettant à l’identité managée de la ressource Data Share d’accéder à Azure SQL Database ou à Azure Synapse Analytics :

    1. Dans le Portail Azure, accédez au serveur SQL et attribuez-vous le rôle Administrateur Microsoft Entra.

    2. Connectez-vous à Azure SQL Database/Data Warehouse à l’aide de l’Éditeur de requête ou à SQL Server Management Studio avec l’authentification Microsoft Entra.

    3. Exécutez le script suivant pour ajouter l’identité managée Data Share en tant que « db_datareader, db_datawriter, db_ddladmin ».

      create user "<share_acc_name>" from external provider; 
      exec sp_addrolemember db_datareader, "<share_acc_name>"; 
      exec sp_addrolemember db_datawriter, "<share_acc_name>"; 
      exec sp_addrolemember db_ddladmin, "<share_acc_name>";
      

      Remarque

      <share_acc_name> est le nom de votre ressource Data Share.

  • Accès au pare-feu SQL Server :

    1. Dans le Portail Azure, accédez au serveur SQL et sélectionnez Pare-feu et réseaux virtuels.
    2. Sélectionnez Oui pour Autoriser les services et les ressources Azure à accéder à ce serveur.
    3. Sélectionnez +Ajouter une adresse IP cliente. L’adresse IP du client peut changer. Par conséquent, vous devrez peut-être ajouter à nouveau l’adresse IP de votre client la prochaine fois que vous partagerez des données à partir du portail.
    4. Cliquez sur Enregistrer.

Pour plus d’informations sur le partage vers et depuis Azure SQL, consultez l’article sur le partage et la réception de données à partir de Stockage Blob Azure et d’Azure Data Lake Storage.

Partage Azure Synapse Analytics

Partager

  • Autorisation d’écrire dans le pool SQL de l’espace de travail Synapse : Microsoft.Synapse/workspaces/sqlPools/write. Cette autorisation existe dans le rôle Contributeur.

  • Autorisation permettant à l’identité managée de la ressource Data Share d’accéder au pool SQL de l’espace de travail Synapse :

    1. Dans le portail Azure, accédez à votre espace de travail Synapse. Sélectionnez Administrateur SQL Active Directory dans le menu de navigation de gauche et attribuez-vous le rôle Administrateur Microsoft Entra.

    2. Ouvrez Synapse Studio et sélectionnez Gérer dans le volet de navigation gauche. Sélectionnez Contrôle d’accès sous Sécurité. Attribuez-vous le rôle Administrateur SQL ou Administrateur d’espace de travail.

    3. Dans Synapse Studio, sélectionnez Développer dans le volet de navigation gauche. Exécutez le script suivant dans le pool SQL pour ajouter l’identité managée de la ressource Data Share en tant que db_datareader.

      create user "<share_acct_name>" from external provider;     
      exec sp_addrolemember db_datareader, "<share_acct_name>"; 
      

      Remarque

      <share_acc_name> est le nom de votre ressource Data Share.

  • Accès au pare-feu de l’espace de travail Synapse :

    1. Dans le portail Azure, accédez à l’espace de travail Synapse. Sélectionnez Pare-feu dans le volet de navigation gauche.
    2. Sélectionnez ON pour Autoriser les services et ressources Azure à accéder à cet espace de travail.
    3. Sélectionnez +Ajouter une adresse IP cliente. L’adresse IP du client peut changer. Par conséquent, vous devrez peut-être ajouter à nouveau l’adresse IP de votre client la prochaine fois que vous partagerez des données à partir du portail.
    4. Cliquez sur Enregistrer.

Receive

  • Pool SQL dédié Azure Synapse Analytics (espace de travail). La réception de données dans un pool SQL serverless n’est actuellement pas prise en charge.

  • Autorisation d’écrire dans le pool SQL de l’espace de travail Synapse : Microsoft.Synapse/workspaces/sqlPools/write. Cette autorisation existe dans le rôle Contributeur.

  • Autorisation permettant à l’identité managée de la ressource Data Share d’accéder au pool SQL de l’espace de travail Synapse :

    1. Dans le portail Azure, accédez à l’espace de travail Synapse.

    2. Sélectionnez Administrateur SQL Active Directory dans le volet de navigation gauche et attribuez-vous le rôle Administrateur Microsoft Entra.

    3. Ouvrez Synapse Studio et sélectionnez Gérer dans le volet de navigation gauche. Sélectionnez Contrôle d’accès sous Sécurité. Attribuez-vous le rôle Administrateur SQL ou Administrateur d’espace de travail.

    4. Dans Synapse Studio, sélectionnez Développer dans le volet de navigation gauche. Exécutez le script suivant dans le pool SQL pour ajouter l’identité managée de la ressource Data Share en tant que « db_datareader, db_datawriter, db_ddladmin ».

      create user "<share_acc_name>" from external provider; 
      exec sp_addrolemember db_datareader, "<share_acc_name>"; 
      exec sp_addrolemember db_datawriter, "<share_acc_name>"; 
      exec sp_addrolemember db_ddladmin, "<share_acc_name>";
      

      Remarque

      <share_acc_name> est le nom de votre ressource Data Share.

  • Accès au pare-feu de l’espace de travail Synapse :

    1. Dans le portail Azure, accédez à l’espace de travail Synapse. Sélectionnez Pare-feu dans le volet de navigation gauche.
    2. Sélectionnez ON pour Autoriser les services et ressources Azure à accéder à cet espace de travail.
    3. Sélectionnez +Ajouter une adresse IP cliente. Cette adresse IP est susceptible d’être modifiée. Il peut être nécessaire de répéter ce processus la prochaine fois que vous partagerez des données SQL à partir du portail Azure.
    4. Cliquez sur Enregistrer.

Pour plus d’informations sur le partage vers et depuis Azure Synapse Analytics, consultez l’article sur le partage et la réception de données à partir d’Azure Synapse Analytics.

Attribuer manuellement des autorisations MI

Si un utilisateur dispose d’autorisations Microsoft.Authorization/role assignments/write sur un magasin de données source ou cible, l’identité managée d’Azure Data Share se voit automatiquement attribuer les autorisations dont l’utilisateur a besoin pour s’authentifier auprès du magasin de données. Vous pouvez également attribuer manuellement des autorisations à l’identité managée.

Si vous choisissez d’attribuer manuellement des autorisations, attribuez ces autorisations à l’identité managée de votre ressource Azure Data Share en fonction de la source et de l’action :

Type de magasin de données Magasin de données source de fournisseurs de données Magasin de données cible de consommateurs de données
Stockage Blob Azure Lecteur des données blob du stockage Contributeur aux données Blob du stockage
Azure Data Lake Gen1 Owner Non pris en charge
Azure Data Lake Gen2 Lecteur des données blob du stockage Contributeur aux données Blob du stockage
Azure SQL Database db_datareader db_datareader, db_datawriter, db_ddladmin
Azure Synapse Analytics db_datareader db_datareader, db_datawriter, db_ddladmin

Exemple de fournisseur de données

Quand vous partagez des données à partir d’un compte de stockage, l’identité managée de la ressource de partage de données se voit attribuer le rôle Lecteur des données Blob du stockage.

Cette opération est effectuée automatiquement par le service Azure Data Share si l’utilisateur ajoute un jeu de données par le biais du Portail Azure et est propriétaire du magasin de données Azure ou s’il est membre d’un rôle personnalisé auquel l’autorisation Microsoft.Authorization/role assignments/write est affectée.

L’utilisateur peut également demander au propriétaire du magasin de données Azure d’ajouter manuellement l’identité managée de la ressource de partage de données au magasin de données Azure. Cette action ne doit être effectuée qu’une seule fois par ressource de partage de données.

Pour créer une attribution de rôle pour l’identité managée de la ressource de partage de données manuellement, suivez les étapes ci-dessous :

  1. Accédez au magasin de données Azure.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionner Ajouter> Ajouter une attribution de rôle.

    Capture d’écran qui indique la page Contrôle d’accès (IAM) avec le menu ouvert Ajouter une attribution de rôle.

  4. Sous l’onglet Rôle, sélectionnez l’un des rôles listés dans la table d’attribution de rôles de la section précédente.

  5. Sous l’onglet Membres, sélectionnez Identité managée, puis Sélectionner des membres.

  6. Sélectionnez votre abonnement Azure.

  7. Sélectionnez l’identité managée affectée par le système, recherchez votre ressource Azure Data Share, puis sélectionnez-la.

  8. Dans l’onglet Passer en revue + affecter, sélectionnez Passer en revue + affecter pour affecter le rôle.

Pour en savoir plus sur l’attribution de rôle, consultez Attribuer des rôles Azure à l’aide du portail Azure. Si vous partagez des données à l’aide d’API REST, vous pouvez créer une attribution de rôle à l’aide d’une API en vous référant à Attribuer des rôles Azure à l’aide du portail Azure à l’aide de l’API REST.

Pour le partage basé sur instantané SQL, un utilisateur SQL doit être créé à partir d’un fournisseur externe dans la base de données SQL portant le même nom que la ressource Azure Data Share lors d’une connexion à la base de données SQL à l’aide de l’authentification Microsoft Entra. Cet utilisateur doit disposer de l’autorisation db_datareader. Vous trouverez un exemple de script avec d’autres prérequis pour le partage basé sur SQL dans le tutoriel Partager à partir d’Azure SQL Database ou Azure Synapse Analytics.

Exemple de consommateur de données

Pour recevoir des données dans le compte de stockage, l’identité managée de la ressource de partage de données du consommateur doit être autorisée à accéder au compte de stockage cible. Le rôle Contributeur de données de l'objet blob de stockage doit être accordé à l’identité managée de la ressource du partage de données. Cette opération est effectuée automatiquement par le service Azure Data Share si l’utilisateur spécifie un compte de stockage cible via le Portail Azure et que l’utilisateur dispose de l’autorisation appropriée. Par exemple, l’utilisateur est propriétaire du compte de stockage ou est membre d’un rôle personnalisé qui dispose de l’autorisation Microsoft.Authorization/role assignments/write.

L’utilisateur peut également demander au propriétaire du compte de stockage d’ajouter manuellement l’identité managée de la ressource de partage de données au compte de stockage. Cette action ne doit être effectuée qu’une seule fois par ressource de partage de données. Pour créer une attribution de rôle pour l’identité managée de la ressource de partage de données manuellement, suivez les étapes ci-dessous.

  1. Accédez au magasin de données Azure.

  2. Sélectionnez Contrôle d’accès (IAM) .

  3. Sélectionner Ajouter> Ajouter une attribution de rôle.

    Capture d’écran qui indique la page Contrôle d’accès (IAM) avec le menu ouvert Ajouter une attribution de rôle.

  4. Sous l’onglet Rôle, sélectionnez l’un des rôles listés dans la table d’attribution de rôles de la section précédente. Par exemple, pour un compte de stockage, sélectionnez Lecteur de données Blob de stockage.

  5. Sous l’onglet Membres, sélectionnez Identité managée, puis Sélectionner des membres.

  6. Sélectionnez votre abonnement Azure.

  7. Sélectionnez l’identité managée affectée par le système, recherchez votre ressource Azure Data Share, puis sélectionnez-la.

  8. Dans l’onglet Passer en revue + affecter, sélectionnez Passer en revue + affecter pour affecter le rôle.

Pour en savoir plus sur l’attribution de rôle, consultez Attribuer des rôles Azure à l’aide du portail Azure. Si vous recevez des données à l’aide d’API REST, vous pouvez créer une attribution de rôle à l’aide d’une API en vous référant à Attribuer des rôles Azure à l’aide de l’API REST.

Pour les cibles basées sur SQL, un utilisateur SQL doit être créé à partir d’un fournisseur externe dans la base de données SQL portant le même nom que la ressource Azure Data Share lors d’une connexion à la base de données SQL à l’aide de l’authentification Microsoft Entra. Cet utilisateur doit disposer de l’autorisation db_datareader, db_datawriter, db_ddladmin. Vous trouverez un exemple de script avec d’autres prérequis pour le partage basé sur SQL dans le tutoriel Partager à partir d’Azure SQL Database ou Azure Synapse Analytics.

Inscription du fournisseur de ressources

Vous devrez peut-être inscrire manuellement le fournisseur de ressources Microsoft.DataShare dans votre abonnement Azure dans les scénarios suivants :

  • Afficher l’invitation d’Azure Data Share pour la première fois dans votre locataire Azure
  • Partager les données d’un magasin de données Azure dans un abonnement Azure différent de celui de votre ressource Azure Data Share
  • Recevoir des données dans un magasin de données Azure dans un abonnement Azure différent de celui de votre ressource Azure Data Share

Suivez ces étapes pour inscrire le fournisseur de ressources Microsoft.DataShare dans votre abonnement Azure. Vous avez besoin d’un accès Contributeur à l’abonnement Azure pour inscrire le fournisseur de ressources.

  1. Dans le portail Azure, accédez à Abonnements.
  2. Sélectionnez l’abonnement que vous utilisez pour Azure Data Share.
  3. Sélectionnez Fournisseurs de ressources.
  4. Recherchez Microsoft.DataShare.
  5. Sélectionnez Inscrire.

Pour en savoir plus sur les fournisseurs de ressources, reportez-vous à Fournisseurs et types de ressources Azure.

Rôles personnalisés pour le partage de données

Cette section décrit les rôles personnalisés et les autorisations nécessaires au sein des rôles personnalisés pour partager et recevoir des données, propres à un compte de stockage. Il existe également des prérequis indépendants du rôle personnalisé ou du rôle Azure Data Share.

Prérequis pour Data Share, en plus du rôle personnalisé

  • Pour le partage basé sur instantané de stockage et de lac de données, pour ajouter un jeu de données dans Azure Data Share, l’identité managée de la ressource de partage de données du fournisseur doit être autorisée à accéder au magasin de données Azure source. Par exemple, si un compte de stockage est utilisé, l’identité managée de la ressource de partage de données se voit octroyer le rôle Lecteur des données Blob du stockage.
  • Pour recevoir des données dans un compte de stockage, l’identité managée de la ressource de partage de données du consommateur doit être autorisée à accéder au compte de stockage cible. Le rôle Contributeur de données de l'objet blob de stockage doit être accordé à l’identité managée de la ressource du partage de données.
  • Vous devrez peut-être aussi inscrire manuellement le fournisseur de ressources Microsoft.DataShare dans votre abonnement Azure pour certains scénarios. Pour plus d’informations, consultez la section Inscription du fournisseur de ressources de cet article.

Créer des rôles personnalisés et les autorisations nécessaires

Vous pouvez créer des rôles personnalisés dans un abonnement ou un groupe de ressources à des fins de partage et de réception de données. Le rôle personnalisé peut alors être affecté à des utilisateurs et groupes.

  • Pour créer un rôle personnalisé, des actions sont nécessaires pour le stockage, le partage de données, le groupe de ressources et l’autorisation. Consultez le document sur les opérations du fournisseur de ressources Azure pour le partage de données afin de comprendre les différents niveaux d’autorisation et choisir ceux qui conviennent à votre rôle personnalisé.
  • Vous pouvez également utiliser le portail Azure pour accéder à IAM, Rôle personnalisé, Ajouter des autorisations, Rechercher, puis rechercher des autorisations Microsoft.DataShare pour voir la liste des actions disponibles.
  • Pour plus d’informations sur l’attribution d’un rôle personnalisé, reportez-vous aux rôles personnalisés Azure. Une fois que vous avez votre rôle personnalisé, testez-le pour vérifier qu’il fonctionne comme prévu.

Voici un exemple des actions nécessaires listées en mode JSON pour qu’un rôle personnalisé partage et reçoive des données.

{
"Actions": [ 

"Microsoft.Storage/storageAccounts/read",  

"Microsoft.Storage/storageAccounts/write",  

"Microsoft.Storage/storageAccounts/blobServices/containers/read", 

"Microsoft.Storage/storageAccounts/blobServices/generateUserDelegationKey/action",

"Microsoft.Storage/storageAccounts/listkeys/action",

"Microsoft.DataShare/accounts/read", 

"Microsoft.DataShare/accounts/providers/Microsoft.Insights/metricDefinitions/read", 

"Microsoft.DataShare/accounts/shares/listSynchronizations/action", 

"Microsoft.DataShare/accounts/shares/synchronizationSettings/read", 

"Microsoft.DataShare/accounts/shares/synchronizationSettings/write", 

"Microsoft.DataShare/accounts/shares/synchronizationSettings/delete", 

"Microsoft.DataShare/accounts/shareSubscriptions/*", 

"Microsoft.DataShare/listInvitations/read", 

"Microsoft.DataShare/locations/rejectInvitation/action", 

"Microsoft.DataShare/locations/consumerInvitations/read", 

"Microsoft.DataShare/locations/operationResults/read", 

"Microsoft.Resources/subscriptions/resourceGroups/read", 

"Microsoft.Resources/subscriptions/resourcegroups/resources/read", 

"Microsoft.Authorization/roleAssignments/read", 
 ] 
}

Étapes suivantes