[pgsql-jp: 25574] Re: 特定のレコードに対しての権限付与
ISHIDA Akio
iakio @ pjam.jpweb.net
2002年 4月 10日 (水) 20:50:43 JST
こんばんは。石田@苫小牧市です。
On Wed, Apr 10, 2002 at 07:20:01PM +0900, Kazusi Nakamura wrote:
> はじめまして。こんばんは。中村と申します。
> 環境:RedHat Linux7.0
> PostgreSQL-7.1.3
>
> なにぶん知識不足で、質問もつたないと思いますが、よろしくご教授
> お願いします。
>
> テーブル定義を
> create table abc(
> id integer,
> name text);
> として、データを
> id | name
> ----------------------
> 0 | dummy <---このレコードを削除不可にしたい
> 1 | naka
> 2 | mura
> とした場合に、id=0のレコードだけをDELETEできないように、権限を
> 付与する事は可能でしょうか?
権限を付与するより、RULE とか TRIGGER で実装してみてはどうでしょう?
ishida=> create rule abc_del_protect as on delete to abc
where old.id = 0 do instead nothing;
CREATE
ishida=> create rule abc_upd_protect as on update to abc
where old.id = 0 do instead nothing;
CREATE
ishida=> select * from abc;
id name
-- ----
1 naka
2 mura
0 hoge
(3 行)
ishida=> update abc set name = 'fuga' where id = 0 ;
UPDATE 0
ishida=> update abc set id = 10 where id = 0 ;
UPDATE 0
ishida=> delete from abc where id = 0 ;
DELETE 0
ishida=> select * from abc;
id name
-- ----
1 naka
2 mura
0 hoge
(3 行)
# 初めて RULE 使ってみたので微妙に自信ありませんが。
--
ISHIDA Akio
pgsql-jp メーリングリストの案内