PDA

View Full Version : Postgreのcopy命令で拒否?


atom
2002/02/07, 12:58 PM
すみません。 atomです。

前回教えていただいた、Postgreのcopy命令でタブ区切りのシーケンシャルファイルをテーブルに一括セットはできるようになったと書いたのですが、今まではローカルでテストしていました。

今回、ローカルで正常に動くことを確認し、サーバーにアップしてテストしましたところ、次のようなエラーメッセージで止まってしまいました。

Warning: PostgreSQL query failed: ERROR: You must have Postgres superuser privilege to do a COPY directly to or from a file. Anyone can COPY to stdout or from stdin. Psql's \copy command also works for anyone. in /virtual/atom/shared_html/php/sknbrd/pgsqldb.icl on line 86

この意味は、superuser以外はcopy命令が使用できないという意味に取れますが、superuserとはここのプロバイダさんのことを言ってますのでしょうか?
それだと、copy命令は使えないということになります。

もし、superuserが我々使用者(atom)のことを言ってるのかも知れないと思い。
以下のように、2種類の方法でDBに接続したのですが、どちらもcopy命令のところで同様のエラーが発生します。

$lnk = pg_connect ($hostnam,"","","",$dbnam);
$lnk = pg_connect ("host=$hostnam dbname=$dbnam password=$dbpwd");

やっぱり、使用者がcopy命令を使用することはできないのでしょうか?

...copy命令は、テーブルからデータを吐き出すこともできるので、セキュリティが掛かっていて使えなくなってるのでしょうか?
わかる方がいましたら、お願いいたします。

atom
2002/02/07, 04:54 PM
自分で質問していながら、申し訳ないのですが、上記の件はどうもできそうになかったので、過去ログを読み漁り、SSH登録とTeraTerm接続で接続できるようになりました。

全然、判らないながらもローカルテストの経験でTeraTermを触っていたらPSQLが使えました。
そこで、\copy命令を使用してみましたらうまく実行でき、シーケンシャルデータのセットができました。


そこで、新しく判らない点があるので教えていただきたいのですが、私はWindows使いなので、UNIXの事がわかりません。

bashやpsqlを使用する際に何度もタイプミスをしてしまうのですが、こういったキーボード入力をコピー&ペーストみたいに、同一の記述を簡単に入力する方法などはUNIXにもあるのでしょうか?

落ち着いて入力すればいいのでしょうが、何度も同じ入力を避ける方法をご存知の方がいましたら、なんとか教えていただけないでしょうか?

pascal
2002/02/08, 12:18 AM
Originally posted by atom
そこで、新しく判らない点があるので教えていただきたいのですが、私はWindows使いなので、UNIXの事がわかりません。

bashやpsqlを使用する際に何度もタイプミスをしてしまうのですが、こういったキーボード入力をコピー&ペーストみたいに、同一の記述を簡単に入力する方法などはUNIXにもあるのでしょうか?


だいたいこんな感じで編集できると思います。
ctrl + p でコマンドヒストリーを遡る
ctrl + n でコマンドヒストリーを順送り
ctrl + f でカーソル右
ctrl + b でカーソル左
ctrl + d で1文字削除
ctrl + a で行頭
ctrl + e で行末

Tera Term ならコピーペーストは使えますよね。

UNIXの知識はあったほうが良いので、ぜひともローカル環境をPC-UNIXにして、"Linux使い"or"*BSD使い"になってください。 ;)

atom
2002/02/08, 10:47 AM
またまた、PASCALさんですね。(笑)
いつも情報提供、ありがとうございます。

先ほど、教えていただいたコントロールキーをcygwin(WindwosでUNIXライク)で試したところ全部使えました。
これで、コマンドのタイプミスを大幅に軽減できます。

copy命令を入力するときに、あまりに長いのでミスをし、それを再入力してると、違うとこを間違えたりで、同じ命令を何度も何度も入力してたんです。
もう、時間の無駄遣いもいいとこ!!

これを知れば、コマンド入力が怖くなくなります。
本当にありがとうございました。

今回のような、UNIXベースの使い方を解説しているサイトなんかあるんでしょうかね?
もう、本当の初歩の初歩だから、ないかなぁ..?

ああ、また時間があるときにインターネットで調べてみます。
ではでは。

(また、お会いできることを..って、会いたくないか!(笑))