Eu sei que podemos verificar os logons e os usuários definidos, usando a GUI no SQL Server, mas estou pensando em como podemos fazer essa verificação usando o script.
Eu executei a consulta abaixo, mas ela mostra Principal_id, que não tenho certeza de como mapear para obter o nível de permissão.
SELECT * FROM Sys.login_token
Existe algum processo armazenado interno que possa listar os logins e os usuários com seu nível de permissão ?
Obrigado.
Respostas:
Não tenho certeza se existe uma maneira interna, mas tente esta consulta para os principais do servidor:
Basicamente, o que ele faz obtém as permissões concedidas e negadas e une-o à associação de função. Deve dar uma breve olhada na segurança dos logins do servidor. Deixe-me saber se é isso que você está procurando.
fonte
CAST([srvperm].[state_desc] AS VARCHAR(MAX)) + ' ' + CAST(srvperm.[permission_name] AS VARCHAR(MAX)) + ' TO [' + CAST(srvprin.name AS VARCHAR(MAX)) + '];' as GrantQuery
o que ajuda a replicar essas permissões se você estiver migrando um servidor :)Experimente este - listará usuários, objetos e as permissões que eles têm sobre esses objetos:
Você também deve verificar a função sys.fn_my_permissions:
http://msdn.microsoft.com/en-us/library/ms188367.aspx
Aqui estão alguns links que também devem ajudá-lo:
PERMISSÕES: http://msdn.microsoft.com/en-us/library/ms191291.aspx
SYS.DATABASE_PERMISSIONS: http://msdn.microsoft.com/en-us/library/ms188367.aspx
Espero que isso ajude você.
fonte