PostgreSQL에서 암호관련 함수를 이용하려면 pgcrypto 모듈이 설치되어야 함.
encrypt, decrypt, encrypt_iv, decrypt_iv 뭐 이런 함수들...
PostgreSQL을 소스로 설치했을 경우이며 아래같은 상황을 가정함.
소스파일 압축풀린 경로 : /usr/local/src/postgresql-8.4.3/
PostgreSQL 설치 경로 : /usr/local/pgsql/
1. 모듈 설치
cd /usr/local/src/postgresql-8.4.3/contrib/pgcrypto // 모듈의 소스파일이 있는 곳으로 이동
make // 컴파일
make install // 설치
make // 컴파일
make install // 설치
여기까지 하면 /usr/local/pgsql/lib/pgcrypto.so 모듈 파일이 생김
2. 함수 추가
psql 로 shell 에 들어가거나 해서 SQL로 사용할 함수를 추가하면 됨.
아래의 query는 몇가지 함수를 추가하는 예를 보여줌.
함수추가 query는 /usr/local/pgsql/share/contrib/pgcrypto.sql 에 들어있음.
SET search_path TO pg_catalog;
CREATE OR REPLACE FUNCTION digest(text, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION digest(bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION crypt(text, text)
RETURNS text
AS '$libdir/pgcrypto', 'pg_crypt'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION encrypt(bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_encrypt'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION decrypt(bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_decrypt'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_encrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_decrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION digest(text, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION digest(bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_digest'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION crypt(text, text)
RETURNS text
AS '$libdir/pgcrypto', 'pg_crypt'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION encrypt(bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_encrypt'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION decrypt(bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_decrypt'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION encrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_encrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
CREATE OR REPLACE FUNCTION decrypt_iv(bytea, bytea, bytea, text)
RETURNS bytea
AS '$libdir/pgcrypto', 'pg_decrypt_iv'
LANGUAGE C IMMUTABLE STRICT;
'DataBase' 카테고리의 다른 글
[PostgreSQL] CrossTab Query (tablefunc) (0) | 2010.04.02 |
---|---|
[PostgreSQL] Date/Time Functions and Operators (0) | 2010.03.29 |
[PostgreSQL] enum type (0) | 2010.03.15 |
[MongoDB] with PHP (0) | 2010.03.12 |
[MongoDB] dbshell 레퍼런스 (0) | 2010.03.12 |