Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a:✅ ponto de extremidade de análise SQL e o Warehouse no Microsoft Fabric
O mascaramento dinâmico de dados é um recurso de proteção de dados que limita a exposição de dados confidenciais mascarando-os a usuários nãoprivilegiados. Ele simplifica o design e a codificação de segurança em seu aplicativo.
O mascaramento de dados dinâmicos ajuda a impedir a exibição não autorizada de dados confidenciais. Os administradores especificam a quantidade de dados confidenciais a serem revelados, com efeito mínimo na camada do aplicativo. Você pode configurar o mascaramento dinâmico de dados em campos de banco de dados designados para ocultar dados confidenciais nos conjuntos de resultados de consultas. Os dados no banco de dados não são alterados, portanto, os aplicativos existentes podem continuar funcionando sem modificação porque as regras de mascaramento são aplicadas aos resultados da consulta. Muitos aplicativos podem mascarar dados confidenciais sem modificar consultas existentes.
O mascaramento dinâmico de dados fornece estes recursos:
- Uma política de mascaramento de dados central atua diretamente nos campos confidenciais do banco de dados.
- Usuários ou funções com privilégios podem ser designados para acessar os dados confidenciais.
- Você tem opções de mascaramento para escolher: máscara completa e funções de mascaramento parcial e uma máscara aleatória para dados numéricos.
- Comandos simples do Transact-SQL definem e gerenciam máscaras.
O mascaramento dinâmico de dados não impede que os usuários do banco de dados se conectem diretamente ao banco de dados e executem consultas exaustivas que expõem partes dos dados confidenciais. Use o mascaramento de dados dinâmicos junto com outros recursos de segurança Fabric, como segurança em nível de coluna e segurança em nível de linha para proteger dados confidenciais no banco de dados.
Funções de mascaramento de dados dinâmicos
Defina uma regra de mascaramento em uma coluna em uma tabela para ofuscar os dados nessa coluna. Quatro tipos de máscaras estão disponíveis.
| Função | Descrição | Exemplos |
|---|---|---|
| Padrão | Mascaramento completo de acordo com os tipos de dados dos campos designados. Para os tipos de dados string, use XXXX ou menos se o tamanho do campo for inferior a quatro caracteres (char, nchar, varchar, nvarchar, text, ntext).Para os tipos de dados numeric, use um valor zero (bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint, float, real). Para os tipos de dados de data e hora, use 1900-01-01 00:00:00.0000000 (date, datetime2, datetime, datetimeoffset, smalldatetime, time).Para os tipos de dados binary, use um único byte de valor ASCII 0 (binary, varbinary, image). |
Exemplo da sintaxe de definição de coluna: Phone# varchar(12) MASKED WITH (FUNCTION = 'default()') NULLExemplo de sintaxe de alteração: ALTER COLUMN Gender ADD MASKED WITH (FUNCTION = 'default()') |
O método de mascaramento que expõe a primeira letra de um endereço de email e o sufixo constante ".com", na forma de um endereço de email.
aXXX@XXXX.com. |
Exemplo da sintaxe de definição: Email varchar(100) MASKED WITH (FUNCTION = 'email()') NULLExemplo de sintaxe alterada: ALTER COLUMN Email ADD MASKED WITH (FUNCTION = 'email()') |
|
| Aleatório | Uma função de mascaramento aleatório para uso em qualquer tipo numérico para mascarar o valor original com um valor aleatório dentro de um intervalo especificado. | Exemplo da sintaxe de definição: Account_Number bigint MASKED WITH (FUNCTION = 'random([start range], [end range])')Exemplo de sintaxe alterada: ALTER COLUMN [Month] ADD MASKED WITH (FUNCTION = 'random(1, 12)') |
| Cadeia de caracteres personalizada | Método de mascaramento que expõe a primeira e a última letra e adiciona uma string de preenchimento personalizada no meio. prefix,[padding],suffixSe o valor original for muito curto para completar a máscara inteira, parte do prefixo ou sufixo não será exposta. |
Exemplo da sintaxe de definição: FirstName varchar(100) MASKED WITH (FUNCTION = 'partial(prefix,[padding],suffix)') NULLExemplo de sintaxe de alteração: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(1,"XXXXXXX",0)')Isso transforma um número de telefone como 555.123.1234 em 5XXXXXXX. Exemplo adicional: ALTER COLUMN [Phone Number] ADD MASKED WITH (FUNCTION = 'partial(5,"XXXXXXX",0)') Isso transforma um número de telefone como 555.123.1234 em 555.1XXXXXXX. |
Para obter mais exemplos, consulte Como implementar o mascaramento de dados dinâmico no Fabric Data Warehouse.
Permissões para mascaramento dinâmico de dados
Em Fabric Data Warehouse, os usuários verão dados mascarados quando consultam colunas mascaradas se não forem membros das funções Administrador, Membro ou Colaborador no workspace ou não tiverem permissões elevadas no Warehouse.
A tabela a seguir lista as permissões necessárias para cada operação de mascaramento de dados dinâmicos:
| Operation | Permissão necessária |
|---|---|
| Criar uma tabela que tenha colunas mascaradas |
CREATE TABLE e ALTER no esquema |
| Adicionar, substituir ou remover uma máscara em uma coluna |
ALTER ANY MASK e ALTER na tabela |
| Exibir dados mascarados |
SELECT na mesa |
| Exibir dados desmascarados |
UNMASK na coluna ou CONTROL no banco de dados |
Conceda ALTER ANY MASK a um oficial de segurança. Conceda UNMASK a um usuário para permitir que esse usuário recupere dados desmascarados de colunas mascaradas.
A CONTROL permissão no banco de dados inclui ambos ALTER ANY MASK e UNMASK, portanto, os usuários que têm CONTROL podem exibir dados desmascarados. Usuários administrativos ou papéis como Administrador, Membro ou Colaborador têm CONTROL permissão no banco de dados por definição e podem visualizar dados sem mascaramento por padrão. Permissões elevadas no Warehouse incluem a permissão CONTROL.
Consideração de segurança: ignorar o mascaramento usando técnicas de inferência ou força bruta
O mascaramento dinâmico de dados simplifica o desenvolvimento de aplicativos limitando a exposição de dados em um conjunto de consultas predefinidas que o aplicativo usa. Embora o mascaramento dinâmico de dados também possa ajudar a evitar a exposição acidental de dados confidenciais ao acessar dados diretamente, usuários sem privilégios com permissões de consulta podem usar técnicas para inferir os dados reais.
Por exemplo, um usuário que tem permissão para executar consultas no warehouse pode adivinhar valores para inferir dados mascarados. Suponha que você defina uma máscara na [Employee].[Salary] coluna. O usuário se conecta diretamente ao banco de dados e começa a adivinhar valores, eventualmente inferindo o [Salary] valor na Employees tabela. Eles executam uma consulta por intervalo na tabela Employees:
SELECT ID, Name, Salary FROM Employees
WHERE Salary > 99999 and Salary < 100001;
A consulta retorna:
| ID | Nome | Salário |
|---|---|---|
| 62543 | Desconhecida | 0 |
| 91245 | John Smith | 0 |
Embora a Salary coluna esteja mascarada (os valores são exibidos como 0), a WHERE cláusula confirma que ambos os funcionários têm um salário entre US$ 99.999 e US$ 100.001. Não use apenas o mascaramento dinâmico de dados para proteger totalmente dados confidenciais contra usuários com acesso de consulta ao Warehouse ou ao ponto de extremidade de análise SQL. O mascaramento dinâmico de dados é apropriado para evitar a exposição acidental de dados confidenciais, mas não protege contra a intenção mal-intencionada de inferir os dados subjacentes.
Gerencie corretamente a segurança no nível do objeto com permissões granulares do SQL e sempre siga o princípio do privilégio mínimo.
Conteúdo relacionado
- Funções do workspace no armazenamento de dados do Fabric
- Segurança em nível de coluna no data warehouse do Fabric
- Segurança em Nível de Linha no armazenamento de dados do Fabric
- Segurança para armazenamento de dados no Microsoft Fabric