我正在尝试为数据收集端点创建一个只写角色。
我的设计计划是:
我创建了角色
CREATE ROLE new_write_only WITH
NOLOGIN
NOSUPERUSER
INHERIT
NOCREATEDB
NOCREATEROLE
NOREPLICATION
我创建了用户
CREATE USER " + user_name + "
VALID UNTIL 'infinity'
ENCRYPTED PASSWORD '" + password + "'
我将用户分配给角色
GRANT new_write_only TO " + user_name + "
我为角色分配INSERT
权限
GRANT INSERT ON target_table TO new_write_only
但是当我以user_name
INSERT INTO target_table (col_1, col_2, col_3) VALUES ('123abc', '{}', '2018-02-22 10:45:01.845539')
我得到了
permission denied for relation target_table
当我和表所有者一样运行时,没问题。
答案 0 :(得分:0)
我需要GRANT USAGE
上的sequence
以及
GRANT USAGE ON SEQUENCE target_table_row_id_seq TO new_write_only;