我创建了一个新的超级用户,以便该用户可以运行COPY命令。 请注意,非超级用户无法运行复制命令。 由于备份应用程序,我需要此用户,并且该应用程序需要运行COPY命令用户postgres和超级用户有什么区别?
但是,我指定的所有限制都不会生效(请参见下文)。 用户postgres和超级用户有什么区别?
是否有更好的方法来实现我想要的?我研究了一个安全性定义为postgres的函数......这对于多个表似乎有很多工作。
DROP ROLE IF EXISTS mynewuser;
CREATE ROLE mynewuser PASSWORD 'somepassword' SUPERUSER NOCREATEDB NOCREATEROLE NOINHERIT LOGIN;
-- ISSUE: the user can still CREATEDB, CREATEROLE
REVOKE UPDATE,DELETE,TRUNCATE ON ALL TABLES IN SCHEMA public, schema1, schema2, schema3 FROM mynewuser;
-- ISSUE: the user can still UPDATE, DELETE, TRUNCATE
REVOKE CREATE ON DATABASE ip2_sync_master FROM mynewuser;
-- ISSUE: the user can still create table;
你想干什么?可以“复制”的非超级用户角色? – Nicarus