요즘 개인정보보안강화로 암복화 키를 파일 저장방식으로 강화되었네요.
DB서버에 키를 저장한 파일을 읽어서 암호화키를 추출해야 합니다.
그래서 티베로에서 UTL_FILE 패키지를 이용해서 OS파일에 대한 read/write를 수행 할 수 있다고 하니, 참고하시기 바랍니다.
(티베로와 오라클 동일)
1. 암호키를 저장한 파일을 DBMS 폴더에 생성
폴더위치에 암호화 키를 저장한 파일을 저장하고 해당 파일을 읽을 수 있도록 권한 부여해주면 됨(DBA에 요청)
* UTL_FILE package의 설명
Function/Procedure설 명
FOPEN | Input이나 Output을 위해 file을 연다. file이 존재하지 않을 경우 file을 생성한다. |
IS_OPEN | file handler를 이용해 file이 open되었는지 여부를 return한다. |
FCLOSE | file을 닫는다. |
FCLOSE_ALL | 열려 있는 모든 file을 닫는다. |
GET_LINE | open된 file로부터 한 line을 읽는다. |
PUT | open된 file에 한 line을 write한다. (Line terminator를 붙이지 않는다.) |
PUT_LINE | open된 file에 한 line을 write한다. (Line terminator를 붙인다.) |
PUTF | string을 formatting에 의해 write한다. (printf처럼) |
NEW_LINE | open된 file에 line terminator을 write한다. |
FFLUSH | open된 모든 file의 내용을 file에 physical하게 write한다. |
1. 암호화키를 저장한 파일(.txt) 저장
- File 경로: $TIBERO_HOME/ENC_KEY
- DB Directory 명: ENC_KEY
- 파일명 : enc_key.txt (암호화키를 저장한 파일)
암호화키를암호화 키를 저장한 파일을 읽어서 암호화 키를 추출해보도록 하겠습니다.
2. 파일 읽어서 암호화 키 추출하는 함수 생성
CREATE OR REPLACE FUNCTION FN_GET_ENC_KEY
RETURN VARCHAR2
IS
FHANDLE UTL_FILE.FILE_TYPE;
FBUFFER VARCHAR2(64);
FILE_PATH VARCHAR2(100) := 'ENC_KEY'; //파일 디렉토리 위치
FILE_NAME VARCHAR2(100) := 'enc_key.txt'; //파일명
BEGIN
-- 파일 읽기
FHANDLE := UTL_FILE.FOPEN(FILE_PATH, FILE_NAME, 'R');
UTL_FILE.GET_LINE(FHANDLE, FBUFFER);
--DBMS_OUTPUT.PUT_LINE(FBUFFER);
UTL_FILE.FCLOSE(FHANDLE);
RETURN FBUFFER ;
EXCEPTION
WHEN NO_DATA_FOUND THEN
--DBMS_OUTPUT.PUT_LINE('NO_DATA_FOUND');
UTL_FILE.FCLOSE(FHANDLE);
RAISE_APPLICATION_ERROR(-20000,'NO_DATA_FOUND');
WHEN UTL_FILE.INVALID_PATH THEN
--DBMS_OUTPUT.PUT_LINE('UTL_FILE.INVALID_PATH');
UTL_FILE.FCLOSE(FHANDLE);
RAISE_APPLICATION_ERROR(-20000,'UTL_FILE.INVALID_PATH');
WHEN UTL_FILE.READ_ERROR THEN
--DBMS_OUTPUT.PUT_LINE(' UTL_FILE.READ_ERROR');
UTL_FILE.FCLOSE(FHANDLE);
RAISE_APPLICATION_ERROR(-20000,'UTL_FILE.READ_ERROR');
WHEN OTHERS THEN
--DBMS_OUTPUT.PUT_LINE('other ERR');
UTL_FILE.FCLOSE(FHANDLE);
RAISE_APPLICATION_ERROR(-20000,'OTHERS ERROR');
END;
3. 암호화키 확인 테스트
SELECT FN_GET_ENC_KEY() AS TXT_KEY
FROM DUAL
'기술' 카테고리의 다른 글
티베로(Tibero)제공 함수 정리 - 티멕스 제공 (0) | 2022.11.25 |
---|---|
티베로(Tibero) 제공 분석함수(analytic_function)정리 - 티멕스 제공 (0) | 2022.11.24 |
[Oracle/Tibero] 오라클 / 티베로 계층형 구조 데이타 쿼리 컨넥트(START WITH ...CONNECT BY PRIOR) (0) | 2022.11.03 |
[기술]티베로(Tibero) 최근 실행한 쿼리 이력 히스토리 확인방법 (4) | 2022.10.26 |
한글입력이 안될때 이상하게 한글이 깨질때 (0) | 2022.10.14 |