Active Record获取PG :: InsufficientPrivilege:错误:当用户权限退出时

时间:2018-10-12 18:28:40

标签: ruby-on-rails postgresql activerecord

我们正在使用Gem PaperTrail,因此在postgres中,我们有一个名为xxx.versions的表。

通过Rails控制台在本地,我们尝试通过PaperTrail对象查询数据库:
PaperTrail::Version.first

  

PG :: InsufficientPrivilege:错误:关系版本的权限被拒绝   :选择“版本”。*从“版本”中按“版本”进行排序。“ id” ASC LIMIT 1

但是如果我这样访问表:

ActiveRecord::Base.connection.execute("SELECT * FROM xxx.versions limit 1")

返回记录集。

仅当我们尝试从本地计算机连接到数据库时,这种情况才会发生。

如果我从一台qa服务器上的rails控制台运行PaperTrail::Version.first,则连接正常。

其他故障排除详细信息:

  • 我使用了与qa服务器相同的凭据,并收到了 相同的结果。
  • 在本地计算机上,我可以从以下位置查询数据库: 在Rails项目之外,DataGrip / pgadmin也很好。

1 个答案:

答案 0 :(得分:3)

有几种可能性:

  • 在两次尝试中都使用了另一个PostgreSQL用户或数据库。

  • 在另一个versionsxxx之前的架构中,有一个search_path关系。