首页 > 解决方案 > 尝试使用 \i 导入 .sql 文件时获得权限被拒绝

问题描述

我已经连接到我的 Postgres 数据库,我想运行一些种子文件。当我跑步时,\i /home/arch/dev/project/src/db/schema/create.sql我得到Permission Denied

有没有办法让我的操作系统上的 postgres 用户有权运行其他用户拥有的文件,或者让我可以psql从我的 linux 用户帐户运行,而不必切换到 postgres 用户?

标签: postgresql

解决方案


有没有办法让我的操作系统上的 postgres 用户有权运行其他用户拥有的文件

唯一需要的权限是读取文件,并遍历目录树以获取文件。这些可以设置chmod

让我可以从我的 linux 用户帐户运行 psql 而不必切换到 postgres 用户?

有很多选择。如果您当前的 pg_hba 本地设置为 just local all all peer,则添加一个与您的 linux 帐户名称相同的新数据库超级用户。或更改 pg_hba.conf 以便您使用md5(或trust,或scram-sha-256,或更高级的东西),而不是peer. 或者继续使用peer,但提供用户映射并编辑 pg_ident.conf 以允许您的 linux 用户连接。


推荐阅读