« 06.18 世界政府、の形 | ココ | 06.19 ポリシーは作れども »

2007年6月19日

COPYはスーパーユーザの権利  このエントリーを含むはてなブックマーク 

SQL文のCOPYは、スーパーユーザー権限がなければ実行することができないので、これを何とかしたい。プログラムで使用するユーザーにスーパーユーザーの権限を与えてしまえば楽だが、セキュリティ的に不安が残る。

PostgreSQLの環境設定(ref. ASHのホームページ)

上の「insert文を使う方法」に、シェルスクリプトからデータベースを操作する方法が書かれていたのでそれを拝借。シェルスクリプト.shにて、psqlを呼び出せばいいだけ。

echo "SQL文もしくはpsqlコマンド" | psql -d dbname -U username -q

echoの引数にCOPY文を入れてやればいい。そのスクリプトをsystem関数で呼び出す、と。無論、echoの引数を"$1"にすればsystem関数で呼び出すときの引数にできる。まぁスーパーユーザー権限で任意のSQLを実行できることになるが…。そこはSELinuxで制限するなり、ブラウザから直接実行できない場所に置くとか対策をすれば。

By ただ at 21:25 カテゴリー ; mein Erbe , 仕事関係

« 06.18 世界政府、の形 | 06月の記事 | 06.19 ポリシーは作れども »




トラックバック

このエントリーのトラックバックURL:
http://pinmarch.sakura.ne.jp/mt/mt-tb.cgi/991