SQL Server – Trigger de auditoria de permissões e privilégios a nível de database e instância (GRANT e REVOKE)

SQL Server – Trigger de auditoria de permissões e privilégios a nível de database e instância (GRANT e REVOKE)
5 (100%) 2 votos

Olá pessoal,
Tudo bem com vocês ?

Depois de MUITO tempo sem postar nenhum artigo técnico, estou começando a ter um tempo novamente para trazer mais scripts e artigos legais que eu gostaria de compartilhar com vocês.

Neste post, vou demonstrar como criar uma trigger para auditar eventos de concessão e remoção de permissões (GRANT e REVOKE) em objetos, databases, alterações de usuários em roles (database roles e server roles), além de permissões diretas em databases. Essa necessidade surgiu através de uma demanda que chegou pra mim, pois alguns usuários estavam perdendo acesso em uma determinada instância e não tinha nenhum controle para identificar quem estava removendo e quem concedeu esses acessos.

Script de criação da tabela de histórico de permissões

Com o script abaixo, você poderá criar a tabela que vai armazenar todo o histórico de permissões concedidas e removidas na instância.

Script de criação da trigger

Com o script abaixo, você irá criar a trigger que faz a coleta a auditoria das permissões.

Resultados

Agora vou demonstrar alguns exemplos do que essa trigger pode auditar.

É isso aí, pessoal!
Um abraço pra vocês e até o próximo post.

SQL, sql server, sql server 2008, sql server 2008 R2, Oracle, Oracle Database, Oracle 11g, Oracle 10g, Oracle 12c, MySQL, Firebird, Consultoria, Consultor, Programador, Programação. Desenvolvedor, Analista de Sistemas, DBA, Criação de website, Criação de Sistema Web, Vitória, Vila Velha, Guarapari, Espírito Santo, ES, Consultoria SQL em VItória, Treinamento, Curso, Prestação de serviço, prestar serviço, freelancer, freela, banco de dados, consultoria em banco de dados, consultor de banco de dados

4 Comments

  1. Desculpe, Durceu. Comentei na postagem errada!
    Estou falando daquela sua trigger de Auditoria de Logins. Nela que fiz a caca.
    E não consigo logar nem com “sa” e nem com qualquer usuário do domínio. Só com um único usuário público que deixei de fora dela. Ainda bem, senão o sistema teria parado!
    Vou ficar te devendo muito se me ajudar a sair dessa sem ter que reinstalar o SQL no servidor.

    Laércio Nantes Coelho
  2. Olá, Dirceu!

    Estava testando essa trigger e achei um problema com uma situação aqui no meu ambiente, de login com Crystal Reports. Na tentativa de ajustar isso setei os parâmetros CONCAT_NULL_YIELDS_NULL, ANSI_WARNINGS e ANSI_PADDING para OFF e recriei a trigger. Resultado: não consigo mais logar no servidor! Só consigo com um usuário público que deixei de fora do controle, mas com isso não consigo mais alterar nem excluir a trigger.
    Tem alguma sugestão para me ajudar a resolver essa patetada que fiz ?

    Laércio Nantes Coelho

Deixe uma resposta