Listando os logins e as permissões de servidor

Hoje me deparei com a situação onde precisava listar os logins com suas respectivas permissões em nível de servidor.

Eu lembro de já ter feito um script semelhante no passado, mas como não consegui encontrar, resolvi fazer um script com tal função.

O ponto inicial foi dar uma olhada nas Security Catalog Views para entender como funciona o relacionamento entre as elas.

Após isso o processo foi relativamente simples e terminou com os dois scripts abaixo. Eu achei tão fácil que acredito que esteja faltando algo, por isso peço a ajuda de vocês para apontar erros ou melhorias.

1) Listar os membros das Roles de Servidor

SELECT sRole.name AS [Server Role Name] , sPrinc.name AS [Members],
'EXEC master..sp_addsrvrolemember @loginame = N''' + sPrinc.name + ''', @rolename = N''' + sRole.name + ''''
FROM sys.server_role_members AS sRo
JOIN sys.server_principals AS sPrinc ON sRo.member_principal_id = sPrinc.principal_id
JOIN sys.server_principals AS sRole ON sRo.role_principal_id = sRole.principal_id;

2) Listar as permissões a nível de Servidor

SELECT pe.state_desc, pe.permission_name,PR.NAME,
PE.state_desc COLLATE SQL_LATIN1_GENERAL_CP1_CI_AI + ' ' + PE.permission_name + ' TO ' + PR.name
FROM SYS.SERVER_PERMISSIONS PE
JOIN SYS.SERVER_PRINCIPALS PR ON (PE.GRANTEE_PRINCIPAL_ID = PR.PRINCIPAL_ID)
--WHERE PR.name NOT LIKE '##%' --remover logins de sistema relacionados a certificados
--AND PE.PERMISSION_NAME <> 'CONNECT SQL'  --remover a listagem de permissões de conectar ao servidor
ORDER BY PR.NAME

Uma boa fonte para esse tipo de problema é o blog de segurança da equipe do SQL Server, de onde tirei a base para meus scripts.

Esse post foi publicado em Artigos, Virtual PASS BR. Bookmark o link permanente.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s