FreeBSD - PostgreSQL-contribの導入・利用
postgreSQL-contribを導入します。 これを導入することにより、例えばパスワードの暗号化関数(crypt)などが SQLで利用できる様になります。
対象OS、バージョン
- FreeBSD-5.3
- postgresql-contrib-7.4.6
導入
make install
rootで以下を実行します。
# cd /usr/ports/databases/postgresql-contrib # make install cleanこれで、/usr/local/share/postgresql/contrib/にいろんなSQLが配置されます。
template1データベースへの導入
インストールされたSQL(/usr/local/share/postgresql/contrib/*.sql)をtemplate1データベース上で実行します。
試しに、/usr/local/share/postgresql/contrib/pgcrypto.sqlを実行してみます。
これにより、crypt()関数やgen_salt()関数がSQLから使える様になります。
これ以降、新しく作成されるデータベースにはpgcrypto関数群が含まれて作成されます。
試しに、/usr/local/share/postgresql/contrib/pgcrypto.sqlを実行してみます。
これにより、crypt()関数やgen_salt()関数がSQLから使える様になります。
# psql -U pgsql template1 # \i /usr/local/share/postgresql/contrib/pgcrypto.sql # \qこれで、template1データベースにpgcrypto関数群が登録されました。
これ以降、新しく作成されるデータベースにはpgcrypto関数群が含まれて作成されます。
既存のデータベースへの導入
すでに作成されているデータベースにpgcrypto.sqlを追加する場合、
同様に
なので、
まあ、権限をあたえればいいのだろう(GRANT ..)けど、よくわからないので・・・。
同様に
# psql -U owneName DbName # \i /usr/local/share/postgresql/contrib/pgcrypto.sqlとすれば導入されるが、データベースのオーナーがpgsql以外の場合、
SET psql:/usr/local/share/postgresql/contrib/pgcrypto.sql:7: ERROR: .....とエラーがでてしまう。
なので、
# psql -U pgsql DbName # \i /usr/local/share/postgresql/contrib/pgcrypto.sqlとpgsqlユーザで対象のデータベースにログインして実行すればよい。
まあ、権限をあたえればいいのだろう(GRANT ..)けど、よくわからないので・・・。
pgcryptの利用
# psql -u pgsql template1
template1=> select crypt('abc',pg_sal('MD5'));
crypt
------------------------------------
$1$szzz575.$HBOPr/8QtjJLztniSLfDG/
(1 row)
の様にパスワード 'abc' の暗号化ができました。Copyright ima All Rights Reserved.