Title |
[MSSQL] MSSQL SERVER 시작/재시작 시에 암/복호화 동작 확인 스크립트 | Product |
Plug-In |
---|---|---|---|
Phenomenon |
암호화/복호화 펑션 수행 에러 발생 |
||
Cause |
PLUGIN 이 설치된 OS 가 재시작 하는 경우에만 공유 메모리가 클리어 되며
이때는 정책을 로컬/원격(보안서버) 에서 주입을 받아야 하는데 특별한 이유 (네트웍 , OS 동작에러) 로 공유 메모리에 정책이 올라가지 않는 현상이 발생 할 수 있습니다. |
||
Solution |
다음 스크립트를 활용을 검토 하여 보세요.
/* --------------------------------------------------------------- ------------------- 암호화 가능 여부 학인Procedure ------------- --------------------------------------------------------------- -- 스크립트 내용 -- 1> 사용자 프로시져 SP_MSSQL_STARTUP_CHECK_ENCRYPTION_TEST 를MASTER 데이터베이스에생성함 2> 암호화 성공/실패 에 따라서 분기를 함 --------------------------------------------------------------- */ USE MASTER GO CREATE PROC DBO.SP_MSSQL_STARTUP_CHECK_ENCRYPTION_TEST AS DECLARE @ENC VARCHAR(100) SET @ENC = 'NOT_USING' -- ITEM : AES128 (해당사이트에서사용하는ITEM 으로수정) SET @ENC = MASTER.DBO.ENC_CHAR_INS (0,'AES128','000-1111111') IF @ENC = 'NOT_USING' BEGIN -- ENCRYPTION FAIL. INSERT INTO MESSAGE_TABLES VALUES ('FAIL') END ELSE BEGIN -- ENCRYPTION SUCCESS. INSERT INTO MESSAGE_TABLES VALUES ('SUCCESS') END GO /* ---------------------------------------------------------------- ------- MSSQL_STARTUP_CHECK_ENCRYPTION_TEST 활용------- ---------------------------------------------------------------- 위 작성된 암호화 성공/실패 프로시져 활용 */ 1. STARTUP PROCEDURE > 특정 프로시져를, SP_PROCOPTION 프로시져를 사용 하여 등록 > 해당 프로시져는 SQLSERVER 시작/재시작 시에 자동 동작 (ex) 등록 exec sp_procoption '프로시져명' , 'STARTUP' , 'ON' (ex) 해제 exec sp_procoption '프로시져명' , 'STARTUP' , 'OFF' 2. MSSQL SERVER AGENT > 특정 프로시져를, AGENT 스케쥴에 등록 하여 특정시간 때 에 동작 시킴 > 프로시져 동작시간/기간/반복/요일등을 조정가능 > 실패할 경우, SMS 나EMAIL 등과 연계하여 메시징 가능 (SMS , EMAIL 자원이 있는경우) |