Temos um banco de dados SQL Server com um esquema de RH que contém dados de recursos humanos. Inclui salário e outras informações privadas. Proprietários de banco de dados, administradores de sistema e membros de uma função [Executives] têm permissão para ver o esquema de RH.
Alguns dos outros usuários são membros da função db_datareader que tem a capacidade de ler os dados de qualquer tabela do banco de dados. Eles foram adicionados à função antes da existência do requisito de segurança de RH.
Qual é uma estratégia para negar acesso a todos os outros usuários?
A primeira coisa que você precisa fazer é remover outros usuários da
db_datareader
funçãoEm seguida, crie uma função de banco de dados personalizada, como
other_users
, você nomeia, adicione membros:em seguida, conceda selecionar no banco de dados para a função
Em seguida, negue o acesso ao esquema de RH para
other_users
Dessa forma, você terá outros usuários capazes de ler de qualquer outro esquema ou tabela, exceto esquema HR