Funções e condições do Azure Data Share
Este artigo descreve as funções e permissões necessárias para compartilhar e receber dados usando o serviço de Compartilhamento de Dados do Azure.
Funções e requisitos
Com o serviço de Partilha de Dados do Azure, pode partilhar dados sem trocar credenciais entre o fornecedor de dados e o consumidor. Para compartilhamento baseado em instantâneo, o serviço de Compartilhamento de Dados do Azure usa Identidades Gerenciadas (anteriormente conhecidas como MSIs) para autenticar no repositório de dados do Azure.
Para criar compartilhamentos no compartilhamento de Dados do Azure, 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 vivem, sua permissão para procurar por eles no portal.)
- Permissões de origem, dependendo da fonte:
Armazenamento e partilha 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 | Nota |
---|---|---|---|---|
Armazenamento de Blobs do Azure | Partilhar 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 | Partilhar dados | Permissões de acesso e escrita nos ficheiros que pretende partilhar. | ||
Receber dados | Não suportado | |||
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 suportado. | |||
Azure Data Lake Gen2 | Partilhar 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. |
* Esta permissão existe na função de 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 Blob 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 que você precisará para que o Compartilhamento de Dados do Azure 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. Esta permissão existe na função de Contribuidor.
- Permissões de administrador do SQL Server Microsoft Entra.
- Acesso ao Firewall do SQL Server:
- No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais na navegação à esquerda.
- Selecione Sim para Permitir que os serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP do 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 compartilhar dados do portal.
- Selecione Guardar.
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 destes pré-requisitos:
Permissão para gravar nos bancos de dados no servidor SQL: Microsoft.Sql/servers/databases/write. Esta permissão existe na função de Contribuidor.
Permissão para a identidade gerenciada do recurso de Compartilhamento de Dados do Azure acessar o banco de dados:
No portal do Azure, navegue até o servidor SQL e defina-se como o administrador do Microsoft Entra.
Conecte-se ao Banco de Dados SQL/Data Warehouse 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 por Recursos de Compartilhamento de Dados como um db_datareader. Conecte-se usando o Ative 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>";
Nota
O <share_acc_name> é o nome do seu recurso de Compartilhamento de Dados.
Um Usuário do Banco de Dados SQL do Azure com acesso 'db_datareader' para navegar e selecionar as tabelas ou exibições que deseja compartilhar.
Acesso ao Firewall do SQL Server:
- No portal do Azure, navegue até SQL server. Selecione Firewalls e redes virtuais na navegação à esquerda.
- Selecione Sim para Permitir que os serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP do 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 compartilhar dados do portal.
- Selecione Guardar.
Autenticação a receber em SQL
Para um servidor SQL em que você é o administrador do Microsoft Entra do servidor SQL, preencha estes pré-requisitos antes de aceitar um compartilhamento de dados:
- Um Banco de Dados SQL do Azure ou o Azure Synapse Analytics (anteriormente Azure SQL DW).
- Permissão para gravar nos bancos de dados no servidor SQL: Microsoft.Sql/servers/databases/write. Esta permissão existe na função de Contribuidor.
- Acesso ao Firewall do SQL Server:
- No portal do Azure, navegue até o servidor SQL. Selecione Firewalls e redes virtuais na navegação à esquerda.
- Selecione Sim para Permitir que os serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP do 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 compartilhar dados do portal.
- Selecione Guardar.
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:
Você pode seguir 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 (anteriormente Azure SQL DW).
Permissão para gravar em bancos de dados no servidor SQL: Microsoft.Sql/servers/databases/write. Esta permissão existe na função de Contribuidor.
Permissão para a identidade gerenciada do recurso de Compartilhamento de Dados acessar o Banco de Dados SQL do Azure ou o Azure Synapse Analytics:
No portal do Azure, navegue até o servidor SQL e defina-se como o administrador do Microsoft Entra.
Conecte-se ao Banco de Dados SQL/Data Warehouse 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 de Compartilhamento de Dados 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>";
Nota
O <share_acc_name> é o nome do seu recurso de Compartilhamento de Dados.
Acesso ao Firewall do SQL Server:
- No portal do Azure, navegue até o servidor SQL e selecione Firewalls e redes virtuais.
- Selecione Sim para Permitir que os serviços e recursos do Azure acessem este servidor.
- Selecione +Adicionar IP do 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 compartilhar dados do portal.
- Selecione Guardar.
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
Partilhar
Permissão para gravar no pool SQL no espaço de trabalho Synapse: Microsoft.Synapse/workspaces/sqlPools/write. Esta permissão existe na função de Contribuidor.
Permissão para a identidade gerenciada do recurso de Compartilhamento de Dados acessar o pool SQL do espaço de trabalho Sinapse:
No portal do Azure, navegue até seu espaço de trabalho Synapse. Selecione SQL Ative Directory admin na navegação à esquerda e defina-se como o administrador do Microsoft Entra.
Abra o Synapse Studio, selecione Gerenciar na navegação à esquerda. Selecione Controle de acesso em Segurança. Atribua a si mesmo a função de administrador do SQL ou do espaço de trabalho.
Selecione Desenvolver na navegação à esquerda no Synapse Studio. Execute o script a seguir no pool SQL para adicionar a Identidade Gerenciada por Recursos de Compartilhamento de Dados como um db_datareader.
create user "<share_acct_name>" from external provider; exec sp_addrolemember db_datareader, "<share_acct_name>";
Nota
O <share_acc_name> é o nome do seu recurso de Compartilhamento de Dados.
Espaço de trabalho Synapse Acesso ao firewall:
- No portal do Azure, navegue até o espaço de trabalho Synapse. Selecione Firewalls na navegação à esquerda.
- Selecione ATIVADO para Permitir que os serviços e recursos do Azure acessem esse espaço de trabalho.
- Selecione +Adicionar IP do 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 compartilhar dados do portal.
- Selecione Guardar.
Receber
Um pool SQL dedicado do Azure Synapse Analytics (espaço de trabalho). Atualmente, não há suporte para o recebimento de dados no pool SQL sem servidor.
Permissão para gravar no pool SQL no espaço de trabalho Synapse: Microsoft.Synapse/workspaces/sqlPools/write. Esta permissão existe na função de Contribuidor.
Permissão para a identidade gerenciada do recurso de Compartilhamento de Dados acessar o pool SQL do espaço de trabalho Sinapse:
No portal do Azure, navegue até o espaço de trabalho Synapse.
Selecione SQL Ative Directory admin na navegação à esquerda e defina-se como o administrador do Microsoft Entra.
Abra o Synapse Studio, selecione Gerenciar na navegação à esquerda. Selecione Controle de acesso em Segurança. Atribua a si mesmo a função de administrador do SQL ou do espaço de trabalho.
No Synapse Studio, selecione Desenvolver na navegação à esquerda. Execute o seguinte script no pool SQL para adicionar a Identidade Gerenciada por Recursos de Compartilhamento de Dados 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>";
Nota
O <share_acc_name> é o nome do seu recurso de Compartilhamento de Dados.
Espaço de trabalho Synapse Acesso ao firewall:
- No portal do Azure, navegue até o espaço de trabalho Synapse. Selecione Firewalls na navegação à esquerda.
- Selecione ATIVADO para Permitir que os serviços e recursos do Azure acessem esse espaço de trabalho.
- Selecione +Adicionar IP do cliente. O endereço IP do cliente está sujeito a alterações. Esse processo pode precisar ser repetido na próxima vez que você estiver compartilhando dados SQL do portal do Azure.
- Selecione Guardar.
Para obter mais informações sobre como compartilhar de e para a análise do Azure Synapse, 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 destino, ele atribuirá automaticamente à identidade Gerenciada do Compartilhamento de Dados do Azure as permissões necessárias para se autenticar no repositório 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 seu 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 de Blobs do Azure | Leitor de Dados do Armazenamento de Blobs | Contribuidor de Dados de Blobs de Armazenamento |
Azure Data Lake Gen1 | Proprietário | Não suportado |
Azure Data Lake Gen2 | Leitor de Dados do Armazenamento de Blobs | Contribuidor de Dados de Blobs de Armazenamento |
Base 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 repositório de dados do Azure manualmente. Essa ação só precisa ser executada uma vez por recurso de compartilhamento de dados.
Para criar manualmente uma atribuição de função para a identidade gerenciada do recurso de compartilhamento de dados, use as seguintes etapas:
Navegue até o repositório de dados do Azure.
Selecione Controlo de acesso (IAM) .
Selecione 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.
No separador Membros, selecione Identidade gerida e, em seguida, selecione Selecionar membros.
Selecione a subscrição do Azure.
Selecione Identidade gerenciada atribuída ao sistema, procure seu recurso de Compartilhamento de Dados do Azure e selecione-o.
No separador Rever + atribuir, selecione Rever + atribuir para atribuir a função.
Para saber mais sobre atribuições de função, consulte Atribuir funções do Azure usando o portal do Azure. Se você estiver compartilhando dados usando APIs REST, poderá criar atribuição de função usando a API fazendo referência a Atribuir funções do Azure usando a API REST.
Para o compartilhamento baseado em instantâneo SQL, um usuário SQL precisa ser criado a partir de um provedor externo no Banco de Dados SQL com o mesmo nome do recurso de Compartilhamento de Dados do Azure enquanto se conecta ao banco de dados SQL usando a autenticação do Microsoft Entra. Esse usuário precisa receber db_datareader permissão. Um script de exemplo, juntamente com outros pré-requisitos para compartilhamento baseado em SQL, pode ser encontrado no tutorial Compartilhar do Banco de Dados SQL do Azure ou no 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 ter 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 de Compartilhamento de Dados do Azure se o usuário especificar uma conta de armazenamento de destino por meio do portal do Azure e tiver a permissão adequada. Por exemplo, o usuário é proprietário da conta de armazenamento 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 da conta de armazenamento adicione a identidade gerenciada do recurso de compartilhamento de dados à conta de armazenamento 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 repositório de dados do Azure.
Selecione Controlo de acesso (IAM) .
Selecione 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.
No separador Membros, selecione Identidade gerida e, em seguida, selecione Selecionar membros.
Selecione a subscrição do Azure.
Selecione Identidade gerenciada atribuída ao sistema, procure seu recurso de Compartilhamento de Dados do Azure e selecione-o.
No separador Rever + atribuir, selecione Rever + atribuir para atribuir a função.
Para saber mais sobre atribuições de função, consulte Atribuir funções do Azure usando o portal do Azure. Se você estiver recebendo dados usando APIs REST, poderá criar atribuição de função usando a API fazendo referência a Atribuir funções do Azure usando a API REST.
Para o destino baseado em SQL, um usuário SQL precisa ser criado a partir de um provedor externo no Banco de Dados SQL com o mesmo nome do recurso de Compartilhamento de Dados do Azure enquanto se conecta ao banco de dados SQL usando a autenticação Microsoft Entra. Esse usuário precisa receber db_datareader, db_datawriter db_ddladmin permissão. Um script de exemplo, juntamente com outros pré-requisitos para compartilhamento baseado em SQL, pode ser encontrado no tutorial Compartilhar do Banco de Dados SQL do Azure ou no Azure Synapse Analytics .
Registo do fornecedor 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 Compartilhamento de Dados do Azure pela primeira vez em seu locatário do Azure
- Compartilhar dados de um repositório de dados do Azure em uma assinatura diferente do Azure do seu recurso de Compartilhamento de Dados do Azure
- Receber dados em um repositório de dados do Azure em uma assinatura diferente do Azure do seu recurso de Compartilhamento de Dados do Azure
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é Subscrições.
- Selecione a subscrição que está a utilizar para a Partilha de Dados do Azure.
- Selecione em Provedores de recursos.
- Procure Microsoft.DataShare.
- Selecione Registar.
Para saber mais sobre o provedor de recursos, consulte Provedores e tipos de recursos do Azure.
Funções personalizadas para Compartilhamento de Dados
Esta seção descreve as funções e permissões personalizadas necessárias dentro das funções personalizadas para compartilhar e receber dados, específicas de 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 armazenamento e compartilhamento baseado em instantâneo do data lake, para adicionar um conjunto de dados no Compartilhamento de Dados do Azure, a identidade gerenciada do recurso de compartilhamento de dados do provedor precisa ter acesso ao repositório de dados do Azure de origem. Por exemplo, se estiver usando uma conta de armazenamento, a identidade gerenciada do recurso de compartilhamento de dados receberá a função 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 ter 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.
- Também pode ser necessário registrar manualmente o provedor de recursos Microsoft.DataShare em sua assinatura do Azure para alguns cenários. Consulte a seção Registro do provedor de recursos deste artigo para obter detalhes específicos.
Criar funções personalizadas e permissões necessárias
Funções personalizadas podem ser criadas em uma assinatura ou grupo de recursos para compartilhar e receber dados. Usuários e grupos podem então receber a função personalizada.
- Para criar uma função personalizada, há ações necessárias para Armazenamento, Compartilhamento de Dados, grupo Recursos e Autorização. Consulte o documento de operações do provedor de recursos do Azure para Compartilhamento de Dados para entender os diferentes níveis de permissões e escolher as relevantes para sua função personalizada.
- Como alternativa, você pode usar o portal do Azure para navegar até IAM, Função personalizada, Adicionar permissões, Pesquisar, pesquisar permissões Microsoft.DataShare para ver a lista de ações disponíveis.
- Para saber mais sobre a atribuição de funções personalizadas, consulte Funções personalizadas do Azure. Depois de ter sua função personalizada, teste-a para verificar se ela funciona como esperado.
A seguir mostra um exemplo de como as ações necessárias serão listadas no modo de exibição JSON para uma função personalizada 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óximos passos
- Saiba mais sobre funções no Azure - Compreender as definições de função do Azure