Subscribe to my RSS feed RSS
August 26, 2006

SETTING LANGUAGE C di POSTGRES

Pernah anda mengalami error ketika melakukan perintah GRANT .. LANGUAGE C … di PostgreSQL ? kemungkinan pasti ada, saya pernah mengalami hal ini beberapa hari yang lalu. Awalnya membuat database yang hak aksesnya untuk user tertentu, dimana user tersebut harus bisa membuat fungsi yang LANGUAGE nya adalah C.

Saya ilustrasikan seperti ini.

Login sebagi superuser postgres ( = postgres )untuk membuat user baru:

>psql -Upostgres template1
template1=# create user milis with createdb nocreateuser encrypted password ‘milispwd’;
CREATE ROLE
template1=#

Buat database baru( yang membuat adalah user yang baru ditambahkan = milis):

>createdb –encoding=UTF8 -Umilis -W milis2

Sebagai superuser berikan perintah grant agar user milis memiliki akses ke LANGUAGE C:

template1=# grant all privileges on language c to milis with grant option;

jika anda beruntung maka tidka akan muncul pesan error apapun, tapi jika menjumpai error seperti ini

ERROR: language “c” is not trusted
HINT: Only superusers may use untrusted languages.

maka anda harus mengatur tabel pg_language,

template1=# update pg_language set lanpltrusted=true where lanname=’c';

kemudian berikan perintah GRANT seperti diatas

template1=# grant all privileges on language c to milis with grant option;

Sekarang user “milis” siap untuk membuat FUNCTION dengan LANGUAGE C.

Login sebagai user “milis” ke database “milis2″ yang sudah dibuat diatas,kemudian coba buat FUNCTION dengan LANGUAGE C.

>psql -Umilis milis2
milis2=> create function my_func_encrypt (bytea, bytea, text) returns bytea as
milis2-> ‘$libdir/pgcrypto’, ‘pg_encrypt’
milis2-> language ‘c’;
CREATE FUNCTION
milis2=> select my_func_encrypt(’rahasia’, ‘hashRahasia’, ‘bf’);
my_func_encrypt
—————————-
\031\267\301\242\254\307-+
(1 row)

milis2=>


Semoga bermanfaat.

Feed for this Entry | Trackback Address

1 comment so far

  1. pandu on 02.20.2008 at 9:53 pm | permalink
  2. Sangat bermanfaat :) thx

Leave a Comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>