카테고리 없음
전체 프로시저에서 특정 문자열 찾기
vicjung
2011. 9. 22. 20:07
흠. DB 에 있는 오브젝트로 쿼리를 이용해서 찾는 군요 ㅠ.ㅠ
전 그냥 스크립트 전체를 generate해 버려서 그 안에서 찾아버렸는데 ^^;;;
전체 데이터베이스의 각 프로시저에서 원하는 특정 문자열을 찾기 위한 쿼리입니다. xp_cmdshell 확장 프로시저가 포함된 저장 프로시저를 찾기 위해서 아래와 같이 테스트를 하였습니다.
다음은 SysComments 를 사용하여 지정된 문자열을 찾는 방법입니다.
전체 데이터베이스에 포함된 각각의 프로시저에 포함된 특정 문자열을 찾기 위해 SysComments 의 Text 열에 저장되어 있는 원본 SQL 정의 문을 비교하여 찾는 방법입니다.
EXEC sp_MSForEachDB 'Use [?];
SELECT DISTINCT DB_NAME() AS [DATABASE NAME], A.NAME
FROM dbo.SysObjects A JOIN dbo.SysComments B ON A.ID = B.ID
WHERE A.TYPE = ''P'' AND B.TEXT LIKE ''%xp_cmdshell%''
ORDER BY A.NAME;'
[참고자료]
sys.syscomments (Transact-SQL)