Para a função db_denycustomer
, quero que apenas o código da coluna da tabela cliente seja SELECTable e nenhum dos outros. Então eu fiz isso:
DENY SELECT ON dbo.customer TO db_denycustomer
GRANT SELECT ON dbo.customer (code) TO db_denycustomer
...e funciona bem. Legal! Mas, por quê ?
O que li em artigos relacionados é que as permissões se acumulam, mas DENY
têm precedência. Por outro lado, no meu caso, parece que a última "consulta" de permissão teve precedência. Com certeza, se eu os executar na ordem inversa, o último DENY
ocultará a coluna de código também.
Você poderia por favor detalhar isso?
Também incluí o padrão db_datawriter
e as db_datareader
funções para o usuário com o qual testei.
Este é um comportamento documentado fornecido para compatibilidade com versões anteriores. Excerto da documentação: