ret*_*oat 6 postgresql permissions pg-dump amazon-rds
我对倾销post-data
部分有一个奇怪的问题。
转储命令是:
pg_dump -Fc --verbose --section=post-data --no-owner --no-acl -h localhost -p 9999 -U root db_name -W > constraints.dump
Run Code Online (Sandbox Code Playgroud)
这是一条错误消息:
pg_dump: [archiver (db)] query failed: ERROR: permission denied for relation verification_code_user_mapping_id_seq
pg_dump: [archiver (db)] query was: SELECT sequence_name, start_value, increment_by, CASE WHEN increment_by > 0 AND max_value = 9223372036854775807 THEN NULL WHEN increment_by < 0 AND max_value = -1 THEN NULL ELSE max_value END AS max_value, CASE WHEN increment_by > 0 AND min_value = 1 THEN NULL WHEN increment_by < 0 AND min_value = -9223372036854775807 THEN NULL ELSE min_value END AS min_value, cache_value, is_cycled FROM verification_code_user_mapping_id_seq
Run Code Online (Sandbox Code Playgroud)
但是当我尝试在psql
其中执行此查询时效果很好:
db_name=> SELECT sequence_name, start_value, increment_by, CASE WHEN increment_by > 0 AND max_value = 9223372036854775807 THEN NULL WHEN increment_by < 0 AND max_value = -1 THEN NULL ELSE max_value END AS max_value, CASE WHEN increment_by > 0 AND min_value = 1 THEN NULL WHEN increment_by < 0 AND min_value = -9223372036854775807 THEN NULL ELSE min_value END AS min_value, cache_value, is_cycled FROM verification_code_user_mapping_id_seq;
sequence_name | start_value | increment_by | max_value | min_value | cache_value | is_cycled
---------------------------------------+-------------+--------------+-----------+-----------+-------------+-----------
verification_code_user_mapping_id_seq | 1 | 1 | | | 1 | f
(1 row)
Run Code Online (Sandbox Code Playgroud)
以下是授予用户的权限root
db_name=> \dg root
List of roles
Role name | Attributes | Member of
-----------+-------------------------------+-----------------
root | Create role, Create DB +| {rds_superuser}
| Password valid until infinity |
Run Code Online (Sandbox Code Playgroud)
我向公共模式中的所有表和序列授予了默认权限、select 和 all,但没有运气。
您能帮忙吗?提前致谢!
更新
db_name=> \dp verification_code_user_mapping_id_seq
Access privileges
Schema | Name | Type | Access privileges | Column privileges | Policies
--------+---------------------------------------+----------+-------------------+-------------------+----------
public | verification_code_user_mapping_id_seq | sequence | root=rwU/root | |
(1 row)
Run Code Online (Sandbox Code Playgroud)
我正在使用 Amazon RDS。
小智 8
可能是 AWS-RDS 特定的问题,但如果您明确指定要转储的架构,它就会起作用。
pg_dump -f lol.sql -Fc -v -n public -O -x --section=post-data -h 127.0.0.1 -p 9999 -U root db-name