sql - PostgreSQL:大对象的权限被拒绝

标签 sql postgresql hibernate jdbc

从我的开发环境迁移到暂存环境时,我在对暂存服务器上的 PostgreSQL 数据库进行 hibernate sql 调用时遇到了以下错误。

开发环境没有报错。我假设这是 satting 数据库的特权问题。但是,我从来没有见过这个错误,我不知道去哪里找。任何人都可以建议吗?

Caused by: java.io.IOException: org.postgresql.util.PSQLException: ERROR: permission denied for large object 109138 at org.postgresql.largeobject.BlobInputStream.read(BlobInputStream.java:123) at java.io.InputStream.read(InputStream.java:170) at sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) at sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) at java.io.InputStreamReader.read(InputStreamReader.java:184) at org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:71)

最佳答案

从 PostgreSQL 9.0 开始,大对象具有权限(表 pg_largeobject_metadata 的列 lomacl)。默认情况下,除了所有者(lomowner 列)之外,没有人对大对象具有任何权限。

所以这似乎是版本迁移问题(例如,您没有使用较新版本的 pg_dump 来创建转储),或者您正在尝试访问大型对象暂存环境中的不同用户。

关于sql - PostgreSQL:大对象的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40991185/

相关文章:

MySQL - 链接多个 SQL 命令

sql - 在 PostgreSQL 中将两个或多个不同的 SELECT 查询组合到具有不同条件的同一个表

arrays - JSON 数组的 Postgres 查询

java - 为什么我会遇到唯一索引或主键违规?

mysql - 为什么我不能在 jpa 中定义一个名为 "index"的列?

hibernate - 如何毫无问题地使用JPA 2.0 @ManyToMany

c# - 在 Entity Framework 查询中引用临时表

sql - 单独使用子查询会产生不同的结果

postgresql - 将 gorm.Model 字段集成到 protobuf 定义中

sql - 在 SQLite 中,如何排除包含特定字符串的行?