Sono nuovo su Postgres (e sui sistemi di informazione del database nel complesso). Ho eseguito il seguente script SQL sul mio database:
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;
Quando, come utente www, si tenta di:
insert into cities (name) values ('London');
Ottengo il seguente errore:
ERROR: permission denied for sequence cities_id_seq
Capisco che il problema risieda nel tipo seriale. Ecco perché concedo i diritti di selezione, inserimento ed eliminazione per * _id_seq a www. Eppure questo non risolve il mio problema. Cosa mi sto perdendo?