Funções e requisitos do Azure Data Share

Este artigo descreve as funções e as permissões necessárias para compartilhar e receber dados usando o serviço Azure Data Share.

Funções e requisitos

Com o serviço Azure Data Share, você pode compartilhar dados sem trocar credenciais entre o provedor de dados e o consumidor. Para o compartilhamento com base em captura, o serviço Azure Data Share usa identidades gerenciadas (anteriormente conhecidas como MSIs) para autenticar no armazenamento de dados do Azure.

Para criar compartilhamentos no compartilhamento de Dados do Azure, um usuário precisará destas permissões:

Armazenamento e compartilhamento de data lake

Tipo de armazenamento de dados Ação Função no armazenamento de dados de origem Função no armazenamento de dados de destino Observação
Armazenamento do Blobs do Azure Compartilhar dados Colaborador da conta de armazenamento** **Em vez disso, você pode criar uma função personalizada com as ações de armazenamento necessárias
Receber dados Colaborador da conta de armazenamento** **Em vez disso, você pode criar uma função personalizada com as ações de armazenamento necessárias
Atribuir automaticamente permissões de MI para compartilhar Uma função com Microsoft.Authorization/atribuições de função/gravação* Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente.
Atribuir automaticamente permissões de MI para receber Uma função com Microsoft.Authorization/atribuições de função/gravação* Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente.
Azure Data Lake Gen 1 Compartilhar dados Permissões de acesso e gravação nos arquivos que você deseja compartilhar.
Receber dados Sem suporte
Atribuir automaticamente permissões de MI para compartilhar Uma função com Microsoft.Authorization/atribuições de função/gravação* Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente.
Atribuir automaticamente permissões de MI para receber Não há suporte.
Azure Data Lake Gen 2 Compartilhar dados Colaborador da conta de armazenamento** **Em vez disso, você pode criar uma função personalizada com as ações de armazenamento necessárias
Receber dados Colaborador da conta de armazenamento** **Em vez disso, você pode criar uma função personalizada com as ações de armazenamento necessárias
Atribuir automaticamente permissões de MI para compartilhar Uma função com Microsoft.Authorization/atribuições de função/gravação* Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente.
Atribuir automaticamente permissões de MI para receber Uma função com Microsoft.Authorization/atribuições de função/gravação* Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente.

* Esta permissão existe na função Proprietário .

Para obter mais informações sobre como compartilhar de e para o armazenamento do Azure, consulte o artigo para compartilhar e receber dados do Armazenamento de Blobs do Azure e do Armazenamento do Azure Data Lake.

Compartilhamento de banco de dados SQL

Para compartilhar dados do SQL, você pode usar:

Para receber dados no SQL, você precisará atribuir permissões para receber dados.

Autenticação do Microsoft Entra para compartilhar

Esses pré-requisitos abrangem a autenticação de que você precisará para que o Azure Data Share possa se conectar ao seu Banco de Dados SQL do Azure:

  • Você precisará de permissão para gravar nos bancos de dados no SQL Server: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.
  • Permissões de administrador do SQL Server Microsoft Entra.
  • Acesso ao Firewall do SQL Server:
    1. No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Autenticação SQL para compartilhar

Você pode seguir o vídeo de demonstração passo a passo para configurar a autenticação ou concluir cada um desses pré-requisitos:

  • Permissão para gravar nos bancos de dados no SQL Server: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Azure Data Share acesse o banco de dados:

    1. No portal do Azure, navegue até o SQL Server e defina-se como o Microsoft Entra Admin.

    2. Conecte-se ao Banco de Dados SQL/Data Warehouse do Azure usando o Editor de Consultas ou o SQL Server Management Studio com autenticação do Microsoft Entra.

    3. Execute o script a seguir para adicionar a identidade gerenciada do recurso do Data Share como um db_datareader. Conecte-se usando o Active Directory e não a autenticação do SQL Server.

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

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Um Usuário do Banco de Dados SQL do Azure com o acesso 'db_datareader' para procurar e selecionar as tabelas ou as exibições que você deseja compartilhar.

  • Acesso ao firewall do SQL Server:

    1. No portal do Azure, navegue até o SQL Server. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Autenticação a receber no SQL

Para um servidor SQL em que você é o administrador do Microsoft Entra do SQL Server, preencha estes pré-requisitos antes de aceitar um compartilhamento de dados:

  • Um Banco de Dados SQL do Azure ou o Azure Synapse Analytics (antigo Azure SQL DW).
  • Permissão para gravar nos bancos de dados no SQL Server: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.
  • Acesso ao Firewall do SQL Server:
    1. No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Para um servidor SQL em que você não é o administrador do Microsoft Entra, preencha estes pré-requisitos antes de aceitar um compartilhamento de dados:

Siga o vídeo de demonstração passo a passo ou as etapas abaixo para configurar os pré-requisitos.

  • Um Banco de Dados SQL do Azure ou o Azure Synapse Analytics (antigo Azure SQL DW).

  • Permissão para gravar nos bancos de dados no servidor SQL: Microsoft.Sql/servers/databases/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Data Share acesse o Banco de Dados SQL do Azure ou o Azure Synapse Analytics:

    1. No portal do Azure, navegue até o SQL Server e defina-se como o Microsoft Entra Admin.

    2. Conecte-se ao Banco de Dados SQL/Data Warehouse do Azure usando o Editor de Consultas ou o SQL Server Management Studio com autenticação do Microsoft Entra.

    3. Execute o script a seguir para adicionar a identidade gerenciada do Data Share como um '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>";
      

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Acesso ao firewall do SQL Server:

    1. No portal do Azure, navegue até o servidor SQL e selecione Firewalls e redes virtuais.
    2. Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Para obter mais informações sobre como compartilhar de e para o SQL do Azure, consulte o artigo para compartilhar e receber dados do Banco de Dados SQL do Azure.

Compartilhamento de análise de sinapse do Azure

Compartilhar

  • Permissão para gravar no pool de SQL no workspace do Synapse: Microsoft.Synapse/workspaces/sqlPools/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Data Share acesse o pool de SQL do workspace do Azure Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse. Selecione SQL Active Directory admin na navegação à esquerda e defina-se como o administrador do Microsoft Entra.

    2. Abra o Synapse Studio e selecione Gerenciar no painel de navegação à esquerda. Escolha Controle de acesso em Segurança. Atribua a si mesmo a função Administrador do SQL ou Administrador do workspace.

    3. Selecione Desenvolver no painel de navegação à esquerda no Synapse Studio. Execute o script a seguir no pool de SQL para adicionar a identidade gerenciada pelo recurso do Data Share como um db_datareader.

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

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Acesso ao Firewall do workspace do Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse. Selecione Firewalls no painel de navegação à esquerda.
    2. Selecione ATIVADO na opção Permitir que serviços e recursos do Azure acessem este workspace.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente pode ser alterado, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que compartilhar dados do portal.
    4. Selecione Salvar.

Receber

  • Um pool de SQL dedicado do Azure Synapse Analytics (workspace). No momento, não há suporte para o recebimento de dados no pool de SQL sem servidor.

  • Permissão para gravar no pool de SQL no workspace do Synapse: Microsoft.Synapse/workspaces/sqlPools/write. Essa permissão existe na função Colaborador.

  • Permissão para que a identidade gerenciada do recurso do Data Share acesse o pool de SQL do workspace do Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse.

    2. Selecione o administrador do Active Directory do SQL na navegação à esquerda e defina-se como o administrador do Microsoft Entra.

    3. Abra o Synapse Studio e selecione Gerenciar no painel de navegação à esquerda. Escolha Controle de acesso em Segurança. Atribua a si mesmo a função Administrador do SQL ou Administrador do workspace.

    4. No Synapse Studio, selecione Desenvolver no painel de navegação à esquerda. Execute o script a seguir no pool de SQL para adicionar a identidade gerenciada pelo recurso do Data Share como um '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>";
      

      Observação

      O <share_acc_name> é o nome do seu recurso do Data Share.

  • Acesso ao Firewall do workspace do Synapse:

    1. No portal do Azure, navegue até o workspace do Synapse. Selecione Firewalls no painel de navegação à esquerda.
    2. Selecione ATIVADO na opção Permitir que serviços e recursos do Azure acessem este workspace.
    3. Selecione +Adicionar IP de cliente. O endereço IP do cliente está sujeito a alterações. Esse processo talvez precise ser repetido na próxima vez em que você estiver compartilhando dados SQL do portal do Azure.
    4. Selecione Salvar.

Para obter mais informações sobre como compartilhar de e para o Azure Synapse Analytics, consulte o artigo para compartilhar e receber dados do Azure Synapse Analytics.

Atribuir permissões de MI manualmente

Se um usuário tiver permissões Microsoft.Authorization/role assignments/write em um armazenamento de dados de origem ou de destino, ele atribuirá automaticamente à identidade gerenciada do Compartilhamento de Dados do Azure as permissões necessárias para autenticar com o armazenamento de dados. Você também pode atribuir permissões de identidade gerenciada manualmente.

Se você optar por atribuir permissões manualmente, atribua essas permissões à identidade gerenciada do recurso de Compartilhamento de Dados do Azure com base na origem e na ação:

Tipo de armazenamento de dados Armazenamento de dados de origem do provedor de dados Armazenamento de dados de destino do consumidor de dados
Armazenamento do Blobs do Azure Leitor de Dados do Blob de Armazenamento Colaborador de dados de blob de armazenamento
Azure Data Lake Gen1 Proprietário Sem suporte
Azure Data Lake Gen2 Leitor de Dados do Blob de Armazenamento Colaborador de dados de blob de armazenamento
Banco de Dados SQL do Azure db_datareader db_datareader, db_datawriter db_ddladmin
Azure Synapse Analytics db_datareader db_datareader, db_datawriter db_ddladmin

Exemplo de provedor de dados

Quando você compartilha dados de uma conta de armazenamento, a identidade gerenciada do recurso de compartilhamento de dados recebe a função Leitor de Dados de Blob de Armazenamento .

Isso é feito automaticamente pelo serviço de Compartilhamento de Dados do Azure quando o usuário está adicionando conjunto de dados por meio do portal do Azure e o usuário é proprietário do repositório de dados do Azure ou é membro de uma função personalizada que tem a permissão Microsoft.Authorization/role assignments/write atribuída.

Como alternativa, o usuário pode fazer com que o proprietário do repositório de dados do Azure adicione a identidade gerenciada do recurso de compartilhamento de dados ao armazenamento de dados do Azure manualmente. Essa ação só precisa ser executada uma vez por recurso de compartilhamento de dados.

Para criar uma atribuição de função para a identidade gerenciada do recurso de compartilhamento de dados manualmente, siga as etapas abaixo:

  1. Navegue até o armazenamento de dados do Azure.

  2. Selecione IAM (Controle de acesso) .

  3. Selecione Adicionar > Adicionar atribuição de função.

    Screenshot that shows Access control (IAM) page with Add role assignment menu open.

  4. Na guia Função, selecione uma das funções listadas na tabela de atribuição de função na seção anterior.

  5. Na guia Membros, selecione Identidade gerenciadae selecione Selecionar membros.

  6. Selecione sua assinatura do Azure.

  7. Selecione Identidade gerenciada atribuída pelo sistema, pesquise seu recurso do Azure Data Share e selecione-o.

  8. Na guia Examinar + atribuir, selecione Examinar + atribuir para atribuir a função.

Para saber mais sobre as atribuições de função, confira Atribuir funções do Azure usando o portal do Azure. Se você estiver compartilhando dados usando APIs REST, poderá criar uma atribuição de função usando a API referenciando atribuir funções do Azure usando a API REST.

Para compartilhamento baseado em instantâneo SQL, um usuário SQL precisa ser criado de um provedor externo no Banco de dados SQL com o mesmo nome do recurso de compartilhamento de dados do Azure ao se conectar ao banco de dados SQL usando a autenticação do Microsoft Entra. Esse usuário precisa receber a permissão db_datareader. Um script de exemplo junto com outros pré-requisitos para o compartilhamento baseado em SQL pode ser encontrado no tutorial compartilhamento do banco de dados SQL do Azure ou do Azure Synapse Analytics.

Exemplo de consumidor de dados

Para receber dados na conta de armazenamento, a identidade gerenciada do recurso de compartilhamento de dados do consumidor precisa receber acesso à conta de armazenamento de destino. A identidade gerenciada do recurso de compartilhamento de dados precisa receber a função de colaborador de dados de blob de armazenamento. Isso é feito automaticamente pelo serviço Azure Data Share se o usuário especificar uma conta de armazenamento de destino por meio de portal do Azure e o usuário tiver a permissão adequada. Por exemplo, o usuário é um proprietário da conta de armazenamento ou é um membro de uma função personalizada que tem a permissão Microsoft.Authorization/role assignments/write atribuída.

Como alternativa, o usuário pode ter o proprietário da conta de armazenamento para adicionar manualmente a identidade gerenciada do recurso de compartilhamento de dados à conta de armazenamento. Essa ação só precisa ser executada uma vez por recurso de compartilhamento de dados. Para criar uma atribuição de função para a identidade gerenciada do recurso de compartilhamento de dados manualmente, siga as etapas abaixo.

  1. Navegue até o armazenamento de dados do Azure.

  2. Selecione IAM (Controle de acesso) .

  3. Selecione Adicionar > Adicionar atribuição de função.

    Screenshot that shows Access control (IAM) page with Add role assignment menu open.

  4. Na guia Função, selecione uma das funções listadas na tabela de atribuição de função na seção anterior. Por exemplo, para uma conta de armazenamento, selecione Leitor de Dados de Blob de Armazenamento.

  5. Na guia Membros, selecione Identidade gerenciadae selecione Selecionar membros.

  6. Selecione sua assinatura do Azure.

  7. Selecione Identidade gerenciada atribuída pelo sistema, pesquise seu recurso do Azure Data Share e selecione-o.

  8. Na guia Examinar + atribuir, selecione Examinar + atribuir para atribuir a função.

Para saber mais sobre as atribuições de função, confira Atribuir funções do Azure usando o portal do Azure. Se você estiver recebendo dados usando APIs REST, poderá criar uma atribuição de função usando a API referenciando Atribuir funções do Azure usando a API REST.

Para destino baseado em SQL, um usuário SQL precisa ser criado de um provedor externo no Banco de dados SQL com o mesmo nome do recurso de compartilhamento de dados do Azure ao se conectar ao banco de dados SQL usando a autenticação do Microsoft Entra. Esse usuário precisa receber a permissão db_datareader, db_datawriter db_ddladmin. Um script de exemplo junto com outros pré-requisitos para o compartilhamento baseado em SQL pode ser encontrado no tutorial compartilhamento do banco de dados SQL do Azure ou do Azure Synapse Analytics.

Registro do provedor de recursos

Talvez seja necessário registrar manualmente o provedor de recursos Microsoft.DataShare em sua assinatura do Azure nos seguintes cenários:

  • Exibir o convite do Azure Data Share pela primeira vez no seu locatário do Azure
  • Compartilhar dados de um armazenamento de dados do Azure em uma assinatura do Azure diferente do recurso Azure Data Share
  • Receber dados em um armazenamento de dados do Azure em uma assinatura do Azure diferente do recurso Azure Data Share

Siga estas etapas para registrar o provedor de recursos Microsoft.DataShare em sua assinatura do Azure. Você precisa de acesso de Colaborador à assinatura do Azure para registrar o provedor de recursos.

  1. No portal do Azure, navegue até Assinaturas.
  2. Selecione a assinatura que você está usando para o Azure Data Share.
  3. Selecione em Provedores de Recursos.
  4. Pesquise Microsoft.DataShare.
  5. Selecione Registrar.

Para saber mais sobre o provedor de recursos, consulte tipos e provedores de recursos do Azure.

Funções personalizadas para o Data Share

Esta seção descreve as funções personalizadas e as permissões necessárias dentro das funções personalizadas para compartilhamento e recebimento de dados, específicos para uma conta de Armazenamento. Também há pré-requisitos que são independentes da função personalizada ou da função de Compartilhamento de Dados do Azure.

Pré-requisitos para Compartilhamento de Dados, além da função personalizada

  • Para o compartilhamento com base em captura do data Lake e do armazenamento, para adicionar um conjunto de dados no compartilhamento do Azure Data Share, a identidade gerenciada do recurso de compartilhamento de dados do provedor precisa receber acesso ao armazenamento de dados do Azure de origem. Por exemplo, se estiver usando uma conta de armazenamento, a identidade gerenciada do recurso de compartilhamento de dados recebe a função de leitor de dados de blob de armazenamento.
  • Para receber dados em uma conta de armazenamento, a identidade gerenciada do recurso de compartilhamento de dados do consumidor precisa receber acesso à conta de armazenamento de destino. A identidade gerenciada do recurso de compartilhamento de dados precisa receber a função de colaborador de dados de blob de armazenamento.
  • Talvez você também precise registrar manualmente o provedor de recursos Microsoft.DataShare em sua assinatura do Azure para alguns cenários. Consulte na seção Registro do provedor de recursos deste artigo para obter detalhes específicos.

Criar funções personalizadas e permissões necessárias

As funções personalizadas podem ser criadas em uma assinatura ou grupo de recursos para compartilhar e receber dados. Os usuários e grupos podem ser atribuídos à função personalizada.

  • Para criar uma função personalizada, há ações necessárias para o Armazenamento, Data Share, Grupo de recursos e Autorização. Consulte o Documento de operações do provedor de recursos do Azure para o Data Share, para entender os diferentes níveis de permissões e escolher os relevantes para sua função personalizada.
  • Como alternativa, é possível usar o portal do Azure para navegar até IAM, Função personalizada, Adicionar permissões, Pesquisar, pesquisar por permissões Microsoft.DataShare para ver a lista de ações disponíveis.
  • Para saber mais sobre a atribuição de função personalizada, consulte Funções personalizadas do Azure. Quando tiver sua função personalizada, teste-a para verificar se funciona como o esperado.

Veja a seguir um exemplo de como as ações necessárias serão listadas na exibição JSON para uma função personalizada de compartilhar e receber dados.

{
"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", 
 ] 
}

Próximas etapas