私はpostgres(およびデータベース情報システム全般)の初心者です。データベースで次のSQLスクリプトを実行しました。
create table cities (
id serial primary key,
name text not null
);
create table reports (
id serial primary key,
cityid integer not null references cities(id),
reportdate date not null,
reporttext text not null
);
create user www with password 'www';
grant select on cities to www;
grant insert on cities to www;
grant delete on cities to www;
grant select on reports to www;
grant insert on reports to www;
grant delete on reports to www;
grant select on cities_id_seq to www;
grant insert on cities_id_seq to www;
grant delete on cities_id_seq to www;
grant select on reports_id_seq to www;
grant insert on reports_id_seq to www;
grant delete on reports_id_seq to www;
ユーザーwwwとして、次のことを試みた場合:
insert into cities (name) values ('London');
次のエラーが発生します。
ERROR: permission denied for sequence cities_id_seq
問題はシリアルタイプにあることがわかります。そのため、* _ id_seqの選択、挿入、削除の権限をwwwに付与しています。しかし、これは私の問題を解決しません。何が欠けていますか?