PostgreSQL数据库转储:授予用户备份的所有权限是否合理?
我想对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
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授予备份;——新的!
--自动授予新表的只读权限
更改公共模式中的默认权限
允许选择要备份的表;