top of page
Foto do escritorAmanda Nascimento

Identificar usuários e grupos no SQL SERVER

Atualizado: 22 de set.

🛠️Para identificar todos os usuários cadastrados:



SELECT name

FROM sys.database_principals

WHERE type IN ('S', 'U', 'G')

AND name NOT LIKE '##%'

ORDER BY name;


🛠️ Detalhamento de usuários, grupos e permissões



SELECT princ.name AS UserName,

princ.type_desc AS UserType,

roleprinc.name AS RoleName,

perm.permission_name AS PermissionType

FROM sys.database_principals AS princ

LEFT JOIN sys.database_role_members AS members ON princ.principal_id = members.member_principal_id

LEFT JOIN sys.database_principals AS roleprinc ON members.role_principal_id = roleprinc.principal_id

LEFT JOIN sys.database_permissions AS perm ON perm.grantee_principal_id = princ.principal_id

WHERE princ.type IN ('S', 'U', 'G')

AND princ.name NOT LIKE '##%'

ORDER BY princ.name;



 

A coluna UserType indica o tipo de usuário.

No exemplo acima, SQL_SERVER significa que é um usuário do SQL SERVER. Outros valores possíveis seriam WINDOWS_USER para usuários do Windows autenticados e WINDOWS_GROUP para grupos do Windows autenticados.


A coluna RoleName indica o nome do grupo ao qual o usuário pertence.


A coluna PermissionType indica o tipo de permissão que o usuário tem. O valor CONNECT indica que o usuário tem permissão para se conectar ao banco de dados. Outros tipos de permissões poderiam ser SELECT, INSERT, UPDATE, DELETE, etc.




🛠️Identificar grupos existentes relacionados ao gerenciamento de privilégios


SELECT name

FROM sys.database_principals

WHERE type_desc = 'DATABASE_ROLE';





Grupos padrões no SQL Server


1.      public: Todos os usuários fazem parte do grupo "public" por padrão. É um grupo especial que contém todas as permissões básicas que todos os usuários devem ter no banco de dados. Os usuários herdam as permissões do grupo "public" automaticamente.

 

2.      db_owner: Os membros deste grupo têm controle total sobre o banco de dados. Eles podem executar qualquer operação no banco de dados, incluindo a alteração de sua estrutura, adição/remoção de usuários, etc.

 

3.      db_accessadmin: Os membros deste grupo podem adicionar ou remover logons de usuários de banco de dados.

 

4.      db_securityadmin: Os membros deste grupo podem gerenciar as permissões de segurança no banco de dados, como conceder ou revogar permissões de usuário.

 

5.      db_ddladmin: Os membros deste grupo podem executar operações DDL (Data Definition Language), como criar, modificar ou excluir objetos de banco de dados.

 

6.      db_backupoperator: Os membros deste grupo podem fazer backups ou restaurações do banco de dados.

 

7.      db_datareader: Os membros deste grupo podem ler (selecionar) todos os dados em todas as tabelas do banco de dados.

 

8.      db_datawriter: Os membros deste grupo podem modificar (inserir, atualizar e excluir) todos os dados em todas as tabelas do banco de dados.

 

9.      db_denydatareader: Os membros deste grupo são explicitamente negados de ler dados em todas as tabelas do banco de dados. Essa negação pode ser útil quando você deseja negar permissões a um grupo específico.

 

10.  db_denydatawriter: Os membros deste grupo são explicitamente negados de modificar dados em todas as tabelas do banco de dados. Mais uma vez, essa negação pode ser útil quando você deseja negar permissões a um grupo específico.

© 2017-2025  Criado e desenvolvido por Amanda Nascimento

  • Discord
  • GitHub
  • youtube
  • LinkedIn Amanda
bottom of page