É possível gerar a lista de objetos aos quais um usuário recebeu acesso explícito, para um determinado usuário?
Gostaria de ver uma lista de todos os itens para os quais um usuário tem permissões explícitas, excluindo quaisquer permissões herdadas por meio de funções etc.
Verifique o
sys.database_permissions
DMV, que contém todas as permissões concedidas e negadas.O
major_id
apontará para oobject_id
insys.objects
, osminor_id
pontos para ocolumn_id
insys.columns
(se aplicável).As colunas
grantee_principal_id
egrantor_principal_id
apontam para o ID de usuário concedido e concedido, respectivamente, que você pode encontrar emsys.database_principals
.Lembre-se de que as permissões podem ser atribuídas não apenas a usuários, mas também a funções de servidor ou banco de dados, que o usuário pode herdar. Além disso, as permissões concedidas e negadas podem entrar em conflito, caso em que se aplica a mais restritiva das duas regras.
Eu escrevi uma série de blog um tempo atrás, que entra em mais detalhes sobre permissões.