일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자바
- 스프링
- 상속예제
- 다운캐스팅
- 25가지 효율적인 sql작성법
- 형변환
- full text indexing
- 로또
- 업캐스팅
- Random
- 전자정부
- 추상클래스
- Login with OAuth Authentication
- angular2
- 가변인자
- 전체텍스트
- 다형성
- 단축키
- 자바 야구게임
- Validations
- 야구게임
- 페이징
- Full text
- 상속
- while
- IBatis procedure
- 전체
- 이클립스
- jquery
Archives
- Today
- Total
nalaolla
[MSSQLTIP] 동적쿼리 보안 취약점찾기, EXECUTE AS CALLER외의 내용 찾기 본문
728x90
반응형
일반적으로 동적문자열 실행의 사용은 피해야합니다. 또한 프로시저에 기본 권한인 EXECUTE AS CALLER가 아닌 별개의 권한 할당을 한 경우 주의해야합니다.
아래링크를 참조해서 살펴보고 좀 개선해 보았습니다. 쓸만할 겁니다 ^^
SELECT so.type [타입], OBJECT_NAME(sm.object_id) AS [프로시저명],
CASE
WHEN sm.definition LIKE '%EXEC (%' OR sm.definition LIKE '%EXEC(%' THEN '경고: EXEC 포함'
WHEN sm.definition LIKE '%EXECUTE (%' OR sm.definition LIKE '%EXECUTE(%' THEN '경고: EXECUTE 포함'
ELSE '없음'
END AS [동적구문],
CASE
WHEN execute_as_principal_id = '-2' THEN N'EXECUTE BY OWNER'
WHEN execute_as_principal_id IS NOT NULL THEN N'경고: EXECUTE AS ' + UPPER(user_name(execute_as_principal_id))
ELSE 'EXECUTE BY CALLER(기본)'
END AS [실행자]
FROM sys.sql_modules AS sm
JOIN sys.objects so ON sm.object_id = so.object_id
ORDER BY [타입],[프로시저명]
728x90
반응형
'MS-SQL' 카테고리의 다른 글
테이블의 데이터만 복사하기 (0) | 2015.12.20 |
---|---|
sql 암호화/복호화 (0) | 2015.12.20 |
mssql 도 rownum 된다. (0) | 2015.12.20 |
비용 발생하는 쿼리 찾아내기 (0) | 2015.12.20 |
[MSSQL 2012] MSSQL 2012에서 새롭게 추가된 페이징 쿼리 기법 (0) | 2015.12.20 |