Tôi mới ở postgres (và tại tất cả các hệ thống thông tin cơ sở dữ liệu). Tôi đã chạy theo kịch bản sql trên cơ sở dữ liệu của mình:
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;
Khi, như người dùng www, cố gắng:
insert into cities (name) values ('London');
Tôi nhận được lỗi sau đây:
ERROR: permission denied for sequence cities_id_seq
Tôi hiểu rằng vấn đề nằm ở loại nối tiếp. Đó là lý do tại sao tôi cấp quyền chọn, chèn và xóa cho * _id_seq cho www. Tuy nhiên, điều này không khắc phục vấn đề của tôi. Tôi đang thiếu gì?