我有这个表:
sapiens=# d financiero.almac_solicitud_paz_salvo
Table "financiero.almac_solicitud_paz_salvo"
Column | Type | Modifiers
------------------------+-----------------------------+-------------------------------------------------------------------------------------------------------------------------
id_solicitud_paz_salvo | bigint | not null default nextval(('financiero.sq_financiero_almac_solicitud_paz_salvo_id_solicitud_paz_salvo'::text)::regclass)
fec_solicitud | timestamp(0) with time zone | not null
id_persona | integer | not null
observacion | text |
id_estado | smallint | not null
id_tipo_paz_salvo | smallint | not null
id_usuario | bigint |
Indexes:
"pk_financiero_almac_solicitud_paz_salvo_id_solicitud_paz_salvo" PRIMARY KEY, btree (id_solicitud_paz_salvo)
Foreign-key constraints:
"fk_financiero_almac_solicitud_paz_salvo_id_estado" FOREIGN KEY (id_estado) REFERENCES general.gener_estado(id_estado)
"fk_financiero_almac_solicitud_paz_salvo_id_persona" FOREIGN KEY (id_persona) REFERENCES general.gener_persona(id_persona)
"fk_financiero_almac_solicitud_paz_salvo_id_tipo_paz_salvo" FOREIGN KEY (id_tipo_paz_salvo) REFERENCES financiero.almac_tipo_paz_salvo(id_tipo_paz_salvo)
ureport是拥有所有权限的用户,我还设置了表的所有者
sapiens=# dp financiero.almac_solicitud_paz_salvo
Access privileges
Schema | Name | Type | Access privileges | Column privileges | Policies
------------+---------------------------+-------+-------------------------------+-------------------+----------
financiero | almac_solicitud_paz_salvo | table | ureport=arwdDxt/ureport +| |
但是当我想插入一个值时,比如:
INSERT INTO financiero.almac_solicitud_paz_salvo
(fec_solicitud, id_persona, observacion, id_estado, id_tipo_paz_salvo, id_usuario)
VALUES('2022-09-19'::timestamp, 17962, '', 2, 3, 17);
我得到:
ERROR: permission denied for relation almac_tipo_paz_salvo
CONTEXT: SQL statement "SELECT 1 FROM ONLY "financiero"."almac_tipo_paz_salvo" x WHERE "id_tipo_paz_salvo" OPERATOR(pg_catalog.=) $1 FOR KEY SHARE OF x"
********** Error **********
ERROR: permission denied for relation almac_tipo_paz_salvo
SQL state: 42501
Context: SQL statement "SELECT 1 FROM ONLY "financiero"."almac_tipo_paz_salvo" x WHERE "id_tipo_paz_salvo" OPERATOR(pg_catalog.=) $1 FOR KEY SHARE OF x"
为什么会这样?,感谢您对的友好支持
您使用的是nextval序列,因此它也应该具有USAGE权限:GRANT USAGE,SELECT ON sequence financiero.sq_financiero_almac_solicitd_paz_salvo_id_solicito_paz_solvo TO sapiens;智人是你的角色。在执行权限授予命令之前,不要忘记选择数据库