Usuário com melhor resposta
Trigger DDL de Logon

Pergunta
-
Senhores,
Eu criei a seguinte trigger:
ALTER TRIGGER TR_AuditLogin ON ALL SERVER
WITH EXECUTE AS SELF
FOR LOGON
AS
IF ORIGINAL_LOGIN()= 'assrolle' and APP_NAME () = 'Microsoft SQL Server Management Studio'
BEGIN
-- encerra conexao nao autorizada
ROLLBACK
END
GOEla deveria bloquear os acessos do usuario "ASSROLLE" porem quando eu habilito ela ta bloqueando todos usuarios e não apenas o especificado na query.
Respostas
-
Bom dia Renata,
Olha esse exemplo:
USE master; GO CREATE LOGIN login_test WITH PASSWORD = '3KHJ6dhx(0xVYsdf' MUST_CHANGE, CHECK_EXPIRATION = ON; GO GRANT VIEW SERVER STATE TO login_test; GO CREATE TRIGGER connection_limit_trigger ON ALL SERVER WITH EXECUTE AS 'login_test' FOR LOGON AS BEGIN IF ORIGINAL_LOGIN()= 'login_test' AND (SELECT COUNT(*) FROM sys.dm_exec_sessions WHERE is_user_process = 1 AND original_login_name = 'login_test') > 3 ROLLBACK; END;
http://msdn.microsoft.com/en-us/library/bb326598.aspx
Att,
Ricardo Cortes Microsoft Contingent Staff
Esse contedo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.
MSDN Community Support
- Sugerido como Resposta Ricardo Barbosa Cortes quinta-feira, 2 de outubro de 2014 14:49
- Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 2 de outubro de 2014 14:55
Todas as Respostas
-
Renata,
Altera esse inicio ..
CREATE trigger [t_dba_bloqueia_login]
on all server
for logon
as
beginUse "SYSTEM_USER = 'assrolle' no lugar de original_login().
Tulio Rosa | http://tuliorosa.com.br | Se resolveu seu problema, marque como resposta ou vote
- Editado Tulio Rosa quinta-feira, 2 de outubro de 2014 13:11
- Sugerido como Resposta Ricardo Barbosa Cortes quinta-feira, 2 de outubro de 2014 14:32
- Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 2 de outubro de 2014 14:55
- Não Marcado como Resposta Renata Cardoso quarta-feira, 8 de outubro de 2014 18:50
-
Bom dia Renata,
Olha esse exemplo:
USE master; GO CREATE LOGIN login_test WITH PASSWORD = '3KHJ6dhx(0xVYsdf' MUST_CHANGE, CHECK_EXPIRATION = ON; GO GRANT VIEW SERVER STATE TO login_test; GO CREATE TRIGGER connection_limit_trigger ON ALL SERVER WITH EXECUTE AS 'login_test' FOR LOGON AS BEGIN IF ORIGINAL_LOGIN()= 'login_test' AND (SELECT COUNT(*) FROM sys.dm_exec_sessions WHERE is_user_process = 1 AND original_login_name = 'login_test') > 3 ROLLBACK; END;
http://msdn.microsoft.com/en-us/library/bb326598.aspx
Att,
Ricardo Cortes Microsoft Contingent Staff
Esse contedo e fornecido sem garantias de qualquer tipo, seja expressa ou implicita.
MSDN Community Support
- Sugerido como Resposta Ricardo Barbosa Cortes quinta-feira, 2 de outubro de 2014 14:49
- Marcado como Resposta Ricardo Barbosa Cortes quinta-feira, 2 de outubro de 2014 14:55
-
-