DB 내의 특정 구문 일괄 삭제
SQL Injection 또는 외부 침입으로 인하여 DB 에 비정상 자료 등록되는 경우가 발생함
스팸게시글 등록 또는 광고 웹페이지 경로 등록 등 게시글 등록시 일괄 삭제 필요함
순서 1
프로시저 생성
CREATE PROCEDURE [DB_DEL_TEXT]
AS
DECLARE @TP int;
DECLARE @TBL varchar(255), @CLN varchar(255), @DEL_STR varchar(255);
SET @DEL_STR='광고광고광고<script src=http://fuckingchina.com></script>' -- 여기의 ' ' 안의 내용이 삭제 될 예정인 내용
DECLARE Table_Cursor CURSOR FOR
SELECT a.name, b.name ,b.xtype
FROM sysobjects a, syscolumns b
WHERE a.id = b.id AND a.xtype = 'u' AND
(b.xtype = 99 OR b.xtype = 35 OR b.xtype = 231 OR b.xtype = 167 OR b.xtype=175 OR b.xtype=239 );
OPEN Table_Cursor;
FETCH NEXT FROM Table_Cursor INTO @TBL, @CLN, @TP;
WHILE (@@FETCH_STATUS = 0) BEGIN
IF @TP > 100
BEGIN
EXEC('UPDATE ['+ @TBL +'] set [' + @CLN + '] = REPLACE('+ @CLN+' , '''+@DEL_STR +''','''' )');
END
ELSE
BEGIN
EXEC('UPDATE ['+ @TBL +'] set [' + @CLN + '] = REPLACE(CONVERT(varchar(8000),'+ @CLN+') , '''+@DEL_STR +''','''' )');
END
FETCH NEXT FROM Table_Cursor INTO @TBL, @CLN,@TP;
END;
CLOSE Table_Cursor;
DEALLOCATE Table_Cursor;
GO
순서2
일괄 삭제를 진행 할 DB 접근하여 새 쿼리 실행 후 생성 된 프로시저 실행
Exec DB_DEL_TEXT
'Database > MS-SQL' 카테고리의 다른 글
X 행에 데이터가 커밋되지 않았습니다. (0) | 2016.07.25 |
---|---|
DB 오프라인, 온라인 (0) | 2016.07.25 |
MS-SQL 모든 사용자 연결 끊기 (0) | 2016.07.25 |
php + MS-SQL 연동시 확인 사항 (0) | 2016.07.22 |
SQL 2014 로 DB 이전 후 테이블 행 편집시 나오는 에러 문구 (0) | 2016.07.21 |