SQL Server에서 저장 프로 시저를 수정 한 사람을 찾으십니까?


10

누군가 SQL Server 데이터베이스에서 저장 프로 시저에 로그인하여 수정 한 것 같습니다. 그렇게 한 사람의 자격 증명을 찾는 방법이 있습니까?

답변:


17

기본 트레이스를보고 쉽게 알아낼 수 있습니다. Jonathan Kehayias의 예를보십시오.

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/05/27/pass-dba-sig-default-trace-presentation-files.aspx

이것은 예제로 보여주기위한 것이며 ALTER OBJECT 이벤트 유형을 봐야합니다.

http://sqlblog.com/blogs/jonathan_kehayias/archive/2009/09/29/what-session-created-that-object-in-tempdb.aspx

편집하다:

코드는 Jonathan Kehayias가 제공합니다.

DECLARE @filename VARCHAR(255) 
SELECT @FileName = SUBSTRING(path, 0, LEN(path)-CHARINDEX('\', REVERSE(path))+1) + '\Log.trc'  
FROM sys.traces   
WHERE is_default = 1;  

SELECT gt.HostName, 
       gt.ApplicationName, 
       gt.NTUserName, 
       gt.NTDomainName, 
       gt.LoginName, 
       gt.SPID, 
       gt.EventClass, 
       te.Name AS EventName,
       gt.EventSubClass,      
       gt.TEXTData, 
       gt.StartTime, 
       gt.EndTime, 
       gt.ObjectName, 
       gt.DatabaseName, 
       gt.FileName, 
       gt.IsSystem
FROM [fn_trace_gettable](@filename, DEFAULT) gt 
JOIN sys.trace_events te ON gt.EventClass = te.trace_event_id 
WHERE EventClass in (164) --AND gt.EventSubClass = 2
ORDER BY StartTime DESC; 

저장 프로 시저가 결과에 나타나지 않습니다. 어떤 아이디어가 있습니까?
Behrang Saeedzadeh

SP가 수정되면 표시됩니다. 원하는 경우 더미 SP를 작성하고 변경하여 위 보고서에 표시되는지 확인하십시오.
Sankar Reddy

내 이전 의견은 잊어 버리십시오. 알아 냈습니다. 감사.
Behrang Saeedzadeh

다행이다, 당신은 그것을 알아 냈다 :-)
Sankar Reddy

이 추적 시스템은 MSDN 문서에 따라 더 이상 사용되지 않습니다. 대신 "확장 이벤트"패러다임을 사용하는 것이 좋습니다. technet.microsoft.com/en-us/library/bb630354(v=sql.105).aspx
KeithS
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.