Hey everyone I am fairly new to doing a pg_dump in Postgre sql. I have logged into the server and am running as postgres user. I try to run the pg_dump in order to do a database migration but I keep getting a "Permission Denied" prompt. I believe that I have the highest permissions and should be able to run this. Is there something wrong with my syntax in terminal? Would appreciate the help.
Issue:
*
[user@dfhsdaf07 ~]$ sudo su
[root@dfhsdaf07 user]# su postgres
bash-4.2$ pg_dump -F t file > file.tar
bash: file.tar: Permission denied
bash-4.2$ pg_dump -F t file >./file.tar
bash: ./file.tar: Permission denied
System info:
Macbook Pro 2015
16 GB RAM
Intel I7 Processoor
OS:
macOS Big Sur 11.5.2
The permission you are lacking is the permission to create the dump file in the current directory.
The reason is that if you use so postgres
, you remain in the previous working directory (presumably /root
), and user postgres
doesn't have permissions to create a file there.
Use the -
option:
su - postgres`
That will start a login shell and put you into postgres
's home directory.