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 Azure Data Share, um usuário precisará destas permissões:
- Permissões de conta de compartilhamento de dados: Colaborador
- Grupo de recursos de armazenamento: Leitor (permissões de leitura no grupo de recursos em que suas contas de armazenamento ou bancos de dados residem, você pode procurar por elas no portal).
- Permissões de origem, dependendo da origem:
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/role assignments/write* | 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/role assignments/write* | Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente. | ||
Azure Data Lake Gen 1 | Compartilhar dados | Acesse e escreva permissões nos arquivos que você deseja compartilhar. | ||
Receber dados | Sem suporte | |||
Atribuir automaticamente permissões de MI para compartilhar | Uma função com Microsoft.Authorization/role assignments/write* | 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/role assignments/write* | 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/role assignments/write* | Opcional. Em vez disso, você pode atribuir as permissões de MI manualmente. |
* Essa permissão existe na função de Proprietário.
Para obter mais informações sobre o compartilhamento de e para o armazenamento do Azure, consulte o artigo para compartilhar e receber dados do Armazenamento de Blobs do Azure e do Azure Data Lake Storage.
Compartilhamento de banco de dados SQL
Para compartilhar dados do SQL, você pode usar uma das seguintes opções:
Para receber dados no SQL, você precisará atribuir permissões para receber dados.
Adição da 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 Microsoft Entra do SQL Server.
- Acesso ao Firewall do SQL Server:
- No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
- Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP de cliente. O endereço IP do cliente pode mudar, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que você compartilhar dados do portal.
- Selecione Salvar.
Autenticação SQL a ser compartilhada
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:
No portal do Azure, navegue até o SQL Server e defina você mesmo como o Administrador do Microsoft Entra.
Conecte-se ao Data Warehouse/Banco de Dados SQL do Azure usando o Editor de Consultas ou o SQL Server Management Studio com a autenticação do Microsoft Entra.
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:
- No portal do Azure, navegue até o SQL Server. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
- Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP de cliente. O endereço IP do cliente pode mudar, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que você compartilhar dados do portal.
- Selecione Salvar.
Autenticação a ser recebida no SQL
Para um servidor SQL em que você é o administrador do Microsoft Entra, conclua 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:
- No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais no painel de navegação à esquerda.
- Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP de cliente. O endereço IP do cliente pode mudar, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que você compartilhar dados do portal.
- Selecione Salvar.
Para um servidor SQL em que você não é o administrador do Microsoft Entra, conclua 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:
No portal do Azure, navegue até o SQL Server e defina você mesmo como o Administrador do Microsoft Entra.
Conecte-se ao Data Warehouse/Banco de Dados SQL do Azure usando o Editor de Consultas ou o SQL Server Management Studio com a autenticação do Microsoft Entra.
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:
- No portal do Azure, navegue até o servidor SQL e selecione Firewalls e redes virtuais.
- Escolha Sim na opção Permitir que serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP de cliente. O endereço IP do cliente pode mudar, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que você compartilhar dados do portal.
- Selecione Salvar.
Para obter mais informações sobre o compartilhamento de e para o SQL do Azure, consulte o artigo para compartilhar e receber dados do Banco de Dados SQL do Azure.
Compartilhamento do Azure Synapse Analytics
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:
No portal do Azure, navegue até o workspace do Synapse. Selecione o administrador do Active Directory do SQL na navegação à esquerda e defina-se como o administrador do Microsoft Entra.
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.
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:
- No portal do Azure, navegue até o workspace do Synapse. Selecione Firewalls no painel de navegação à esquerda.
- Selecione ATIVADO na opção Permitir que serviços e recursos do Azure acessem este workspace.
- Selecione +Adicionar IP de cliente. O endereço IP do cliente pode mudar, portanto, talvez seja necessário adicionar o IP do cliente novamente na próxima vez que você compartilhar dados do portal.
- 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:
No portal do Azure, navegue até o workspace do Synapse.
Selecione o administrador do Active Directory do SQL na navegação à esquerda e defina-se como o administrador do Microsoft Entra.
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.
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:
- No portal do Azure, navegue até o workspace do Synapse. Selecione Firewalls no painel de navegação à esquerda.
- Selecione ATIVADO na opção Permitir que serviços e recursos do Azure acessem este workspace.
- 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.
- Selecione Salvar.
Para obter mais informações sobre o compartilhamento 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 a identidade gerenciada do Azure Data Share 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 do Azure Data Share 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 do provedor de dados
Ao compartilhar dados de 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.
Isso é feito automaticamente pelo serviço Azure Data Share quando o usuário está adicionando um conjunto de dados por meio do portal do Azure e o usuário é proprietário do armazenamento 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 armazenamento 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:
Navegue até o armazenamento de dados do Azure.
Selecione IAM (Controle de acesso) .
Selecione Adicionar > Adicionar atribuição de função.
Na guia Função, selecione uma das funções listadas na tabela de atribuição de função na seção anterior.
Na guia Membros, selecione Identidade gerenciadae selecione Selecionar membros.
Selecione sua assinatura do Azure.
Selecione Identidade gerenciada atribuída pelo sistema, pesquise seu recurso do Azure Data Share e selecione-o.
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 o compartilhamento com base em captura do SQL, um usuário do SQL precisa ser criado a partir de um provedor externo no banco de dados SQL com o mesmo nome que o recurso do Azure Data Share 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.
Navegue até o armazenamento de dados do Azure.
Selecione IAM (Controle de acesso) .
Selecione Adicionar > Adicionar atribuição de função.
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.
Na guia Membros, selecione Identidade gerenciadae selecione Selecionar membros.
Selecione sua assinatura do Azure.
Selecione Identidade gerenciada atribuída pelo sistema, pesquise seu recurso do Azure Data Share e selecione-o.
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 do SQL precisa ser criado a partir de um provedor externo no banco de dados SQL com o mesmo nome que o recurso Azure Data Share ao se conectar ao banco de dado 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.
- No portal do Azure, navegue até Assinaturas.
- Selecione a assinatura que você está usando para o Azure Data Share.
- Selecione em Provedores de Recursos.
- Pesquise Microsoft.DataShare.
- 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 Azure Data Share.
Pré-requisitos para o Data Share, 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 seja também necessário 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
- Saiba mais sobre as funções no Azure – Entender as definições de função do Azure