|
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. O Protheus precisa de acesso aos dados no banco de dados para correto funcionamento, portanto, não recomendamos que o novo usuário seja utilizado com o Protheus.
Este procedimento criará um novo usuário no banco de dados que não possui visualização aos dados que devem ser mascarados. Para o Protheus, isto significa que seria necessária a criação de um novo ambiente no DBAccess. Não é recomendada a criação de dois ambientes que apontem para a mesma base de dados, pois isto pode gerar erros decorrentes de acessos concorrentes ao mesmo registro. Caso opte por prosseguir com a configuração para o Protheus, certifique-se que este ambiente (mascarado) não será acessado junto ao ambiente padrão. Não é recomendada a criação de um novo ambiente no DBAccess que aponta para a mesma base de dados, dada a possibilidade de comprometimento do ambiente. A totalidade do impacto no funcionamento da aplicação não foi medida, já que a todo instante o produto Protheus passa por atualizações. |
Por questões de compatibilidade, certos tipos de dados do Protheus são armazenados como outros tipos, e são convertidos ao serem armazenados no banco de dados/carregados para os programas. Exemplos comuns são os tipos de dados DATE, que são armazenados como CARACTERE no banco de dados. Ao acessar o Protheus com um usuário que não visualiza dados mascarados, os campos do tipo DATE não serão convertidos corretamente por conta da máscara, e consequentemente ocorrerão erros ao abrir alguma rotina que traz esta informação. O mascaramento não impede que usuários mal-intencionados |
Criação do usuário no banco de dados
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:
USE master GO GRANT VIEW SERVER STATE to TPPRD; GO GRANT ALTER ANY CONNECTION to TPPRD; GO GRANT SELECT ON sys.dm_tran_locks to TPPRD; GO |
• Usuário TPPRDMASK - Usuário sem visualização à dados protegidos
Além das permissões acima, aplicar os seguintes grants:
USE master GO GRANT VIEW SERVER STATE to TPPRDMASK; GO GRANT ALTER ANY CONNECTION to TPPRDMASK; GO GRANT SELECT ON sys.dm_tran_locks to TPPRDMASK; GO |
USE TPPRD GO grant execute to TPPRDMASK; GO REVOKE UNMASK TO TPPRDMASK; GO |
Criação de conexão ODBC
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. 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.
Criação da conexão DBAccessConfigure a conexão DBAccess para ambos os usuários. A configuração dos usuários precisa estar no mesmo DBAccess. Caso deseje utilizar o usuário com máscara de dados, 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: |
Atenção à possíveis erros
Exemplo de erro ao configurar uma coluna sequencial com mascaramento: TC_Bof - NO CONNECTION Neste caso, foi mascarada a coluna B1_COD da tabela SB1990. Para remover a máscara de dados, utilize o seguinte comando:
Exemplo de usoA 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, execute o seguinte comando:
|
Os campos e tabelas aqui descritos são sugestões por, possivelmente, conterem dados que devam ser protegidos, que possam comprometer a privacidade dos usuários, clientes ou outros atores envolvidos. Certifique-se que os campos devem ser ocultados e que o uso desta feature não comprometerá o funcionamento de sua operação. Realize a validação dos campos mascarados em um ambiente de homologação antes de efetuar esta alteração na base de produção para garantir que os dados necessários serão mascarados e não haverão outras consequências. |