TRUNCATEの権限設定について
現在、phpおよびPostgreSQLを使用して
WEBアプリケーションを開発しています。
その中で、あるテーブルのデータを一括削除するために
TRUNCATEを使用したいと思い、以下のようにTRUNCATE権限を設定しようと
したところ以下のエラーになりました。
ERROR: unrecognized privilege type "truncate"
truncateタイプの権限設定が認められていない感じのエラーでしょうか。
ちなみに、テーブル作成および権限設定はphpPgAdminを使用して行いました。
SQLは以下の通りです。
CREATE TABLE stock_tbl (
cc_no int,
course_no int,
date int,
time_no int,
status int NOT NULL DEFAULT 0,
del_flg int NOT NULL DEFAULT 0,
create_dt timestamp NOT NULL DEFAULT now(),
update_dt timestamp NOT NULL DEFAULT now(),
PRIMARY KEY (cc_no, course_no, date, time_no)
);
REVOKE ALL ON stock_tbl FROM admin;
GRANT SELECT, UPDATE, INSERT, DELETE, TRUNCATE ON stock_tbl TO admin;
環境は以下の通りです。
サーバーはCentOS5.5
PostgreSQLのバージョンは8.1.23
phpPgAdminのバージョンは4.1.3
バージョンなどの問題でTRUNCATEの権限を設定できないのかなと思い
色々調べてみたのですが、解決に結びつくものが見当たりませんでした。
なんとか、上記テーブル、ユーザーにTRUNCATEの権限を与えたいのですが
どのように設定を行えばよろしいでしょうか?
補足ですが、PostgreSQLのバージョンが8.1.22で
上記テーブルに何の特権も設定せずにアプリケーションでTRUNCATEを
実行してもエラーになりませんでした。
どなたか、上記に関してアドナイスをいただけないでしょうか?
よろしくお願いいたします。
お礼
Jianchenさん 回答ありがとうございます。 教えて頂いた方法でうまくできました。