Skip to content

Tiago Neves – DBA SQL Server

Soluções em SQL Server
Menu
  • Início
  • Contato
  • Serviços
  • Sobre
HomeCasos do dia-a-diaListando logins membros da role sysadmin
16 de setembro de 2015

Listando logins membros da role sysadmin

Olá pessoal tudo certo?

Depois de um período de férias recarregando as baterias estamos de volta.

E no post de hoje vou compartilhar um script que ajuda a identificar todos os logins que tem acesso a role sysadmin. Para os que não sabem os membros da role sysadmin podem executar qualquer ação na instância, como por exemplo executar um drop database.

“É uma boa pratica sempre trabalhar com o menor acesso possível.”

O script abaixo lista todos os usuários membros da role sysadmin, neste script vamos utilizar as seguintes views de catálogo sys.server_principals e sys.syslogins.

A view sys.server_principals retorna as informações sobre os logins da instância existem 6 tipos de principals os SQL_LOGIN, WINDOWS_LOGIN, WINDOWS_GROUP, SERVER_ROLE, CERTIFICATE_MAPPED_LOGIN e ASYMMETRIC_KEY_MAPPED_LOGIN.

Enquanto a view sys.syslogins retorna informações sobre o login do tipo, quando o login foi criado, alterado e as server roles que ele é membro.

 SELECT
    a.name AS LoginName,
    a.type_desc AS LoginType,
    a.default_database_name AS DefaultDBName,
    CASE WHEN b.sysadmin = 1 THEN 'True'
         ELSE 'False'
    END [SysAdmin],
    CASE WHEN b.sysadmin = 1 THEN 'ALTER SERVER ROLE [sysadmin]  DROP MEMBER ' + '[' + a.name + ']'
         ELSE 'ALTER SERVER ROLE [sysadmin]  ADD MEMBER ' + '[' + a.name + ']'
    END Command,
    CASE WHEN a.is_disabled = 1 THEN 'Login desabilitado'
         ELSE 'Login habilitado'
    END Status
 FROM
    sys.server_principals a
    JOIN master..syslogins b ON a.sid = b.sid
 WHERE
    a.type <> 'R'
    AND b.sysadmin = 1
    AND a.name NOT LIKE '##%'
 ORDER BY
    b.sysadmin;

Agora já sabemos quais logins ativos, fazem parte da role sysadmin, agora é fazer uma análise se o login realmente necessita fazer parte da role.

ListSysAdmin

Bom pessoal por enquanto é isso, uma boa semana a todos.

Compartilhe isso:

  • Facebook
  • LinkedIn
  • Twitter
  • Imprimir
  • Telegram
  • WhatsApp

Curtir isso:

Curtir Carregando...

Relacionado

Tags:Login, Permission, Principals, security, Segurança, Server Roles, SQL Server

Related Posts

Retornando consultas em execução

Linked Server do SQL Server para Oracle dando erro: “Cannot create an instance of OLE DB provider “OraOLEDB.Oracle” for linked server “LinkedServerName””.

SQL Server on Linux – Parte 2

About The Author

tiagoneves

Deixe uma respostaCancelar resposta

Assinar Blog por Email

Digite seu endereço de email para assinar este blog e receber notificações de novas publicações por email.

Siga-nos

  • Twitter
  • Facebook
  • LinkedIn

Pesquisar no blog

Certificações

Comunidade

Consultoria

Próximos eventos

Posts recentes

  • Conectando no SQL Server utilizando Credencial do Windows
  • AlwaysOn – Boas Práticas para instalar o Cumulative Update
  • AlwaysOn – Como configurar leitura, backup e checkdb na réplica secundária

Categorias

  • Azure
  • Backup
  • Casos do dia-a-dia
  • Certificação
  • Ebooks
  • Eventos
  • High Availability
  • Microsoft
  • PowerShell
  • Scripts
  • Segurança
  • Sem categoria
  • SQL Server 2008
  • SQL Server 2017
  • SQL Server On Linux
  • SQLServer 2014
  • SQLServer 2016
  • SQLServer Geral
  • Troubleshooting
  • Tuning
  • Virtual Pass BR

Arquivos

Blog’s Recomendados

  • Dirceu Resende
  • Fabricio Lima
  • Fabiano Amorim
  • Luan Moreno
  • Luiz Lima
  • Marcelo Fernandes
  • Nilton Pinheiro
  • Paul S. Randal
  • Rodrigo Crespi
  • SQLSkills
  • SQL Server Central
  • SQL Pass
  • Simple Talk
  • SQL Server Magazine
© 2025 Tiago Neves – DBA SQL Server | WordPress Theme by SuperbThemes.com
Back to Top ↑
%d