Dando sequência aos estudos do tópico Projetando Views, vamos abordar o assunto Implicações de Segurança.
Implicações de Segurança
Um dos benefícios ao se utilizar views é a camada de abstração de segurança que nos é proporcionada. Um usuário pode receber um grant de select em uma view, sem a necessidade de receber o mesmo grant de select nas tabelas base referenciadas. Isso significa que o usuário consegue fazer select na view, mas não consegue fazer select nas tabelas usadas pela view. Além disso, views é uma forma de implementar segurança tanto em coluna quanto em linha. É possível no SQL Server dar grant’s em colunas específicas de determinada tabela, mas não diretamente nas linhas. Imagine um cenário em que o DBA é requisitado a configurar as seguintes permissões para o usuário Pedro:
A) Visualizar e ler o conteúdo das colunas Código, Nome e CPF da tabela Cliente;
B) Ler apenas as linhas cuja coluna SALARIO seja inferior a R$ 1.000,00.
O primeiro requisito é fácil de ser atendido e, para isso, o grant de select poderia ser setado diretamente nas colunas da tabela. Contudo, para o segundo requisito não existe um “tipo de grant” e, desta forma, precisamos recorrer a uma abordagem que implemente ambos os requisitos numa única “tacada”. Vejamos como.
Até neste ponto temos o nosso cenário construído. Agora vamos criar um usuário de banco e conceder grant de select sobre a view. Não se preocupem especificamente com as instruções de criação e gerenciamento de usuário, pois as mesmas estão fora do escopo do exame 70-461.
Conclusão
No próximo post estarei quebrando a sequência de tópicos do exame para atender a um pedido dos leitores que vêm acompanhando esta série: apresentar uma lista de material de estudo complementar. Vou elencar os tópicos e apontar fontes de estudo para cada um. Até lá.
Adeilson,
obrigado pela matéria! Esta parte do grant é muito útil!
Caso alguém queira mais detalhes sobre grant acesse:
http://www.mssqltips.com/sqlservertip/1138/giving-and-removing-permissions-in-sql-server/
Muito obrigado!
Fica com Deus!