Histórico da Página
Mesmo com proteções na camada de aplicação, uma vez que um usuário tenha acesso direto ao banco de dados, informações sigilosas podem ser acessadas. O acesso pode ser necessário por diversos motivos, sejam referentes à troubleshooting para encontrar a causa de alguma inconsistência ou outras razões que tornem isto necessário.
Nesta situação, o Data Masking (Mascaramento de dados) para o SQL Server mostra-se como uma ferramenta viável para proteger dados que não devem ser expostos, ao limitar a exposição destes para usuários sem os privilégios necessários.
Aviso | ||
---|---|---|
| ||
Não são suportadas as versões limitadas e tipicamente classificadas como "Express" para o Protheus. |
Disponibilidade da feature |
---|
SQL Server 2019 Standard, Enterprise |
SQL Server 2017 Standard, Enterprise |
SQL Server 2016 Standard, Enterprise |
Configuração da feature
Não é necessário realizar instalações à parte, já que esta feature está disponível nativamente nas versões supracitadas.
Para fins de comparação, dois usuários serão criados, sendo um com permissão para visualização dos dados e outro sem permissão. A criação de um segundo usuário que visualizará apenas os dados necessários, e não possuirá permissão de visualização total, é essencial para o uso da feature.
Expandir | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||
Neste exemplo, serão criados dois usuários: TPPRD, que possui permissão total de acesso aos dados e deve ser criado conforme grants mínimos para o funcionamento do DBAccess; e TPPRDMASK, que visualizará apenas a máscara em dados sigilosos. Usuário TPPRD - Usuário padrãoPermissões selecionadas visualizadas pelo management studio: As permissões padrão, que devem ser aplicadas, são: db_owner e public. Além destas, aplique também as permissões VIEW SERVER STATE, ALTER ANY CONNECTION e SELECT ON sys.dm_tran_locks:
Usuário TPPRDMASK - Usuário sem visualização à dados sensíveisAlém das permissões acima, aplicar os seguintes grants:
|
Expandir | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||
Abra o ODBC Data Source Administrator (administrador de fonte de dados ODBC), clique em Add... (Adicionar...) e selecione o driver ODBC para SQL Server. Em seguida, insira o nome da fonte de dados, uma descrição caso desejado, e o IP do servidor onde a base de dados está localizada. Em seguida, clique em Next. Insira o usuário de conexão à base de dados. Clique em Next. Selecione a opção para alterar a database padrão para a base do Protheus. Clique em Next. Faça Não é necessário qualquer alteração na tela seguinte. Clique em Finish, e faça o teste do data source para validar se a conexão está ok.
|
Expandir | ||
---|---|---|
| ||
Configure a conexão DBAccess para ambos os usuários. A configuração dos usuários precisa estar no mesmo DBAccess. NÃO coloque os dois usuários em DBAccess separados, exceto se estiver usando o DBAccess em modelo distribuído, pois isso pode gerar DeadLocks no banco de dados. Exemplo de configuração para o usuário com permissão de visualização: Exemplo de configuração para o usuário sem permissão de visualização: |
Expandir | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
Exemplo de erro ao configurar uma coluna sequencial com mascaramento: TC_Bof - NO CONNECTION Neste caso, foi utilizada mascarada a coluna B1_COD da tabela SB1990: Bloco de código | | |||||||
|
Bloco de código | ||
---|---|---|
| ||
ALTER TABLE dbo.SB1990 ALTER COLUMN B1_COD DROP MASKED; |
Expandir | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||
Criamos a A máscara de dados foi criada na coluna: ‘A1_NOME’ na tabela SA1990:
O usuário SEM acesso aos dados, visualiza da seguinte forma os dados: O usuário COM acesso aos dados, visualiza da seguinte forma os dados: Para remover a Máscara de Dados, realizamos execute o seguinte comando:
|
Expandir | |||||
---|---|---|---|---|---|
| |||||
|