Eu procurei por todo o lado e não encontrei uma resposta conclusiva para esta pergunta.
Eu preciso de um script que possa dar TODAS as permissões para uma função associada.
Alguma idéia, ou é mesmo possível?
Isso me leva a FECHAR - mas não consigo girar e dar o resumo das funções, e não dos usuários.
WITH perms_cte as
(
select USER_NAME(p.grantee_principal_id) AS principal_name,
dp.principal_id,
dp.type_desc AS principal_type_desc,
p.class_desc,
OBJECT_NAME(p.major_id) AS object_name,
p.permission_name,
p.state_desc AS permission_state_desc
from sys.database_permissions p
inner JOIN sys.database_principals dp
on p.grantee_principal_id = dp.principal_id
)
--role members
SELECT rm.member_principal_name, rm.principal_type_desc, p.class_desc,
p.object_name, p.permission_name, p.permission_state_desc,rm.role_name
FROM perms_cte p
right outer JOIN (
select role_principal_id, dp.type_desc as principal_type_desc,
member_principal_id,user_name(member_principal_id) as member_principal_name,
user_name(role_principal_id) as role_name--,*
from sys.database_role_members rm
INNER JOIN sys.database_principals dp
ON rm.member_principal_id = dp.principal_id
) rm
ON rm.role_principal_id = p.principal_id
order by 1
sql-server
sql-server-2008-r2
elgabito
fonte
fonte
Não consigo encontrar a referência, mas aqui está um script muito descritivo (já o tenho no meu repositório há anos - muito útil para auditoria):
fonte
Acho que deveria fazê-lo, substitua 'blah' pelo nome da sua função ou por um usuário do banco de dados (observe que as funções internas não aparecem como possuindo permissões):
fonte
Apenas para adicionar à lista, tenho alguns SPs sp_dbpermissions e sp_srvpermissions que podem ser usados para retornar o mesmo tipo de informação.
Você pode correr
E pegue isso
(Você não pode vê-lo, mas o script de concessão está à direita no terceiro conjunto de dados e solta / cria scripts à direita no primeiro conjunto de dados.)
fonte
Este é o meu esforço. Eu tenho um script mais longo que percorre todos os bancos de dados também, deixe-me saber se isso é mais útil:
fonte
apenas para adicionar à resposta aceita , às vezes uma função pode pertencer a outra função.
fonte
Como isso apareceu de volta pelo bot da Comunidade, jogarei meu script no chapéu, pois é bastante exaustivo e não encontrei nada que não tenha sido identificado. O bônus é que a saída é bem formatada e também permite funções de banco de dados bastante extensas:
fonte