Tenho colunas de preços confidenciais que gostaria de atualizar apenas por meio de um procedimento armazenado. Gostaria que todo o código ou tentativas manuais de alterar os valores nessas colunas de preços falhasse se não estivesse usando os procedimentos armazenados projetados para atualizá-lo.
Estou pensando em implementar isso usando gatilhos e uma tabela de token. A idéia que estou pensando é ter uma tabela de token. os procedimentos armazenados precisarão primeiro inserir valores na tabela de token. Atualize as colunas de preço. O gatilho de atualização verificará se o token existe na tabela de tokens para a linha atualizada. Se encontrado, continuaria. se o token não for encontrado, lançará uma exceção e fará com que a transação de atualização falhe.
Existe uma maneira boa / melhor de implementar essa restrição?
Respostas:
O SQL Server permite permissões no nível da coluna. Apenas por exemplo:
fonte
SampleRole
por esse usuário ...fonte
Se todos os seus usuários tiverem o mesmo login (ai, BTW), aqui está outra opção
dbo
estiver, então você já está coberto).Os usuários regulares do aplicativo não terão direitos de atualização para essa tabela, portanto, não poderão atualizá-la de outra maneira.
fonte