Skip to content

Commit be4fed8

Browse files
committed
adicionado scritps de audit restantes
1 parent 82f25ee commit be4fed8

File tree

2 files changed

+125
-0
lines changed

2 files changed

+125
-0
lines changed

Audit/AuditLogins.sql

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Detalhes
7+
8+
Não lembro o motivo de ter criado isso, mas deve ter sido algum teste pontual.
9+
De qualquer maneira, deixando ai pois tem algumas sintaxes e comandos que podem ser úteis algum dia (mesmo que pra lembrar rápido)
10+
*/
11+
12+
/*
13+
Uses following select to estimamte
14+
*/
15+
select *,MaxRollover = TotalRequiredSizeMB/SingleFileMB from (
16+
select *,TotalRequiredSizeMB = ((Lsec*RetentionTime*BytesPerL)/1024.00/1024.00)*1.3 from (
17+
select
18+
Lsec = (pc.cntr_value*1.00/datediff(ss,i.sqlserver_start_time,current_timestamp))*2
19+
,BytesPerL = 15*1024
20+
,RetentionTime = 3600*24*7 -- 7days
21+
,SingleFileMB = 100
22+
from sys.dm_os_performance_counters pc
23+
cross join sys.dm_os_sys_info i
24+
where counter_name like '%logins%'
25+
) T
26+
) e
27+
28+
29+
CREATE SERVER AUDIT
30+
AuditLogins
31+
TO
32+
FILE (
33+
FILEPATH = 'D:\Traces\Audit'
34+
,MAXSIZE = 100MB
35+
,MAX_ROLLOVER_FILES = 600
36+
)
37+
WHERE
38+
server_principal_name != 'LOGIN_AUDIT'
39+
OR
40+
succeeded = 0
41+
42+
43+
44+
CREATE SERVER AUDIT SPECIFICATION AuditAllLogins
45+
FOR SERVER AUDIT AuditLogins
46+
ADD (FAILED_LOGIN_GROUP)
47+
,ADD(SUCCESSFUL_LOGIN_GROUP)
48+
with (state = on)
49+
50+
51+
ALTER SERVER AUDIT AuditLogins WITH(STATE = on)
52+
53+
54+
select * from sys.dm_server_audit_status
55+
56+
select server_principal_name,statement
57+
,convert(xml,additional_information)
58+
,*
59+
from sys.fn_get_audit_file('D:\Traces\Audit\AuditLogins_*.sqlaudit',null,null) af
60+
join sys.dm_audit_class_type_map tm
61+
on tm.class_type = af.class_type
62+
order by event_time desc
63+
64+
select * from
65+
xp_cmdshell 'del /q D:\Traces\Audit\*'
66+
sp_configure 'xp_cmdshell',1
67+
reconfigure
68+
69+
70+

Audit/GetAuditReport.sql

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*#info
2+
3+
# Autor
4+
Rodrigo Ribeiro Gomes
5+
6+
# Detalhes
7+
Um exemplo de query para consultar o audit de login
8+
*/
9+
10+
USE master
11+
GO
12+
13+
IF OBJECT_ID('tempdb..#AuditInfo') IS NOT NULL
14+
DROP TABLE #AuditInfo
15+
16+
;WITH XMLNAMESPACES(DEFAULT 'http://schemas.microsoft.com/sqlserver/2008/sqlaudit_data')
17+
SELECT
18+
*
19+
INTO
20+
#AuditInfo
21+
FROM (
22+
SELECT
23+
Login = server_principal_name
24+
,[IP] = CONVERT(xml,additional_information).value('(action_info/address)[1]','varchar(100)')
25+
,Data = DATEADD(hh,-3,event_time)
26+
,Resultado = succeeded
27+
,Banco = isnull(nullif(database_name,''),p.default_database_name)
28+
,Msg = statement
29+
FROM
30+
(
31+
select
32+
pat = log_file_path+name+'*.sqlaudit'
33+
From sys.server_file_audits
34+
WHERE name = 'AuditLogins'
35+
) AFP
36+
CROSS APPLY
37+
sys.fn_get_audit_file(AFP.pat,null,null) af
38+
join
39+
sys.dm_audit_class_type_map tm
40+
ON tm.class_type = af.class_type
41+
left join sys.server_principals p on p.name = server_principal_name
42+
) V
43+
44+
45+
select Login,IP,Banco
46+
,Sucessos = count(case when Resultado = 1 then Data end)
47+
,Falhas = count(case when Resultado = 0 then Data end)
48+
from #AuditInfo ai
49+
where Login != ''
50+
group by Login,IP,Banco
51+
52+
select Login,IP,Banco,Data,Msg
53+
from #AuditInfo ai
54+
where Resultado = 0
55+
ORDER BY Data

0 commit comments

Comments
 (0)