Eu tenho uma Instância Gerenciada de SQL do Azure na qual preciso implementar a segurança em nível de linha em algumas tabelas para filtrar os dados consultados por alguns usuários.
Todos os meus usuários se autenticam com a autenticação do Azure Active Directory e têm permissão de acesso ao banco de dados com base em sua associação a grupos AAD específicos que estão configurados em minha instância SQL. (ou seja, no SQL não tenho nenhum usuário único configurado para login ou acesso ao banco de dados ou permissões de seleção, apenas grupos AAD).
Estou tentando encontrar uma maneira de implementar a segurança em nível de linha usando o mesmo modelo. Portanto, gostaria de implementá-lo fazendo referência ao grupo AAD específico para o qual preciso filtrar linhas em minhas tabelas.
por exemplo
O usuário Bob pertence ao grupo AAD DepartmentA .
O grupo DepartmentA está habilitado na minha SQL Managed Instance para fazer login e recebeu SELECT
permissão em todas as tabelas no banco de dados DatabaseA
Eu quero filtrar linhas com segurança em nível de linha na TabelaA escrevendo uma política que permita que todos os usuários do meu grupo DepartmentA vejam apenas os registros relacionados ao seu departamento (apenas suponha que o nome do departamento esteja escrito em uma coluna da tabela).
Existe alguma maneira de implementar isso?
Encontrei funções como IS_MEMBER()
e IS_ROLEMEMBER()
, mas elas parecem funcionar apenas com domínios normais do Windows, não com o Azure AD.
Obrigado