Altiwrap
altiwrap#
개요#
altiwrap은 PSM(Persistent Stored Module)으로 작성된 코드 프로그램을 암호화할 수 있는 유틸리티이다. altiwrap을 사용하여 코드를 암호화하면 다른 개발자에게 저장 프로시저 및 저장 함수 등의 PSM 코드가 노출되는 것을 방지할 수 있다.
altiwarp {--iname input_file} [--oname output_file]
구문#
파라미터#
파라미터 | 설명 |
---|---|
-h/--h | 도움말을 출력한다. |
--iname | 암호화 할 파일의 이름을 지정한다. 파일의 확장자를 생략하면, '.sql'로 인식한다. |
--oname | 코드 프로그램이 암호화되어 저장될 파일의 이름을 지정한다. 파일의 확장자를 생략하면, '.plb'로 저장된다. |
설명#
altiwrap을 실행하여 개발자가 작성한 저장 프로시저 및 저장 함수의 코드 프로그램을 암호화하여, 다른 개발자 또는 경쟁사에 노출되는 것을 방지할 수 있다.
Altibase가 암호화할 수 있는 구문은 아래와 같다.
-
CREATE [OR REPLACE] PROCEDURE
-
CREATE [OR REPLACE] FUNCTION
-
CREATE [OR REPLACE] TYPESET
-
CREATE [OR REPLACE] PACKAGE
-
CREATE [OR REPLACE] PACKAGE BODY
주의 사항#
-
코드 프로그램이 암호화 된 후에는 프로그램을 변경할 수 없다. 프로그램을 변경할 때에는 암호화 전의 원본 프로그램에서 변경한 후 다시 암호화해야 한다.
-
트리거(trigger)는 암호화할 수 없다.
-
암호화된 프로그램 코드는 구문(syntax) 및 시맨틱(semantic)의 오류를 검사하지 못한다.
사용 예제#
altiwrap을 사용하여 sample1.sql 파일을 암호화한 후, 암호화된 파일을 출력한다.
아래는 sample1.sql 파일이다.
iSQL> create or replace procedure proc1 as
type arr1 is table of char(30) index by integer;
v1 arr1;
begin
v1[0] := 'create or replace';
v1[1] := 'typeset';
v1[2] := 'is';
v1[3] := 'success';
println( v1[0] || v1[1] || v1[2] || v1[3] || '!' );
end;
/
sample1.sql 파일을 암호화한다.
$ altiwrap --iname sample1.sql --oname --sample1.plb
암호화된 코드 프로그램을 isql에서 실행하면 된다.
iSQL> @sample1.plb
iSQL> create or replace procedure proc1 WRAPPED
'MjQz
MTk2
AAhjcmVhdGUgb3IgcmVwbGFjZSBwcm9jZWR1cqQBAAQxIGFzCnR5cGUgYXJyMSBpcyB0YWJsQAYAAWYgY2hhcigzMCkgaW5kZXggYnlAAQZ0ZWdlcjsKdjGYBQAEOwpiZWdpbgp2MVswXSA6PSAnY3JlYSu5ASdyBVsxtAN/DHNldK0CMq4CaXO5ATO4AQNzdWNjZXNsAgZwcmludGxuKCC2C3x8YAFACaABVAegAVwGDHx8ICchJyApOwplbmQ7ChEAADVBRDlBRkIzMDE0MzI1Q0U0MzY1RjYxNEI2NkYwQzRDREMzMTdDQTU=
';
/
Create success.
iSQL> exec proc1;
create or replace typeset is success!
Execute success.