시작프로시저 만들고 관리하기
SQL서버가 시작될 때 자동으로 시작되는 프로시저들이 있다는 것을 알고 계십니까? 따라서 SQL 서버를 재시작 할 경우 어떤 프로시저가 불법적으로 실행되는지 점검해 둘 필요가 있습니다. 다음의 내용들을 실습해봅니다.
1.시작 프로시저 만드는법 2.해당 저장프로시저가 시작 프로시저인지 아닌지 검사하는 법 3.DB에 시작프로시저 있나 없나 검사하기
1. 시작 프로시저 만드는법 해제하는법
1.이벤트로그에 기록하는 프로시저글 만듭니다.
2.시작프로시저로 등록합니다 sp_procoption up_svrStart,startup,true
3.SQL서버를 재시작하고 이벤트 뷰어에서 다음을 확인합니다.
.로그를 지우고 이번에는 자동시작 되지 못하도록 SQL서버를 시작시켜봅니다.
net start mssqlserver /T4022
SQL서버를 재시작하고 이벤트 로그를 확인합니다.
5.시작프로시저 옵션을 해제(취소)합니다. 특히 해당 소스를 sp_helptext로 살펴봐서 수상한 것은 도움말을 참조하거나 확인하고 넘어가야합니다.
sp_procoption up_svrstart,startup,false
2.해당 저장프로시저가 시작 프로시저인지 아닌지 검사하는 법
select OBJECTPROPERTY (object_id('저장프로시저'),'ExecIsStartup')
3.DB에 시작프로시저 있나 없나 검사하기
1. DB에 저장프로시저 목록을 축력합니다.
select id from sysobjects where xtype in ('x','p')
2. 시작프로시저 속성이 1인 프로시저만 출력합니다
select * from sysobjects where xtype in ('x','p') and objectproperty(object_id(id), 'execisstartup') = 1
4.서버에 시작프로시저 있나없나 검사하기(옵션) 위의 3 - 2. 쿼리를 모든DB에서 실행하면 됩니다. 직접해봅시다. |