Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PostgreSQL数据库转储:授予用户备份的所有权限是否合理?_Postgresql - Fatal编程技术网

PostgreSQL数据库转储:授予用户备份的所有权限是否合理?

PostgreSQL数据库转储:授予用户备份的所有权限是否合理?,postgresql,Postgresql,我想对postgresql数据库进行数据库备份。 我在现有数据库上执行了以下操作: sudo -u postgres psql oder psql -U postgres CREATE USER backup; ALTER USER backup WITH PASSWORD 'new_password'; GRANT CONNECT ON DATAB

我想对postgresql数据库进行数据库备份。 我在现有数据库上执行了以下操作:

sudo -u postgres psql oder psql -U postgres
CREATE USER backup;                                                                          
ALTER USER backup WITH PASSWORD 'new_password';
GRANT CONNECT ON DATABASE confluence TO backup; 
GRANT CONNECT ON DATABASE taiga TO backup;  
GRANT USAGE ON SCHEMA public TO backup; 
GRANT SELECT ON ALL TABLES IN SCHEMA public TO backup;

ALTER DEFAULT PRIVILEGES IN SCHEMA public 
GRANT SELECT ON TABLES TO backup;                                                               
如果我运行
pg_dump-Fc confluence>dumpfile

pg_dump: [archiver (db)] query failed: ERROR:  permission denied for relation EVENTS
pg_dump: [archiver (db)] query was: LOCK TABLE public."EVENTS" IN ACCESS SHARE MODE
我在书中读到,这将有助于:

GRANT ALL PRIVILEGES ON TABLE confluence TO backup;
我想知道这是否是将所有权限授予备份用户的正确方法,因为备份用户没有写入数据库的权限。我希望它是一个只读用户。 这是一个毫无意义的要求吗


您建议我做什么?

除了授予数据库的连接权限和所有表的选择权限(在公共架构中),您还需要授予所有序列的选择权限(在公共架构中)

将架构中所有序列上的SELECT授予公共
总结如下:

——创建用户
创建用户备份;
使用“新密码”更改用户备份;
--授予只读权限
授予数据库上的连接以进行备份;
在公共模式中的所有表上授予SELECT以进行备份;
将架构公共中所有序列上的SELECT授予备份;——新的!
--自动授予新表的只读权限
更改公共模式中的默认权限
允许选择要备份的表;