PostgreSQL:大型对象的权限被拒绝
从开发环境迁移到登台环境时,我在登台服务器上对PostgreSQL数据库进行hibernate sql调用时遇到以下错误 开发环境中没有错误。我假设这是一个关于饱和数据库的特权问题。然而,我从未见过这种错误,我不知道该去哪里寻找。有人能提供建议吗 原因:java.io.IOException:org.postgresql.util.psqleexception:错误:拒绝大对象109138的权限 位于org.postgresql.largeobject.BlobInputStream.read(BlobInputStream.java:123) 读取(InputStream.java:170) 位于sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:284) 位于sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:326) 位于sun.nio.cs.StreamDecoder.read(StreamDecoder.java:178) 位于java.io.InputStreamReader.read(InputStreamReader.java:184) 位于org.hibernate.type.descriptor.java.DataHelper.extractString(DataHelper.java:71)PostgreSQL:大型对象的权限被拒绝,sql,postgresql,hibernate,jdbc,Sql,Postgresql,Hibernate,Jdbc,从开发环境迁移到登台环境时,我在登台服务器上对PostgreSQL数据库进行hibernate sql调用时遇到以下错误 开发环境中没有错误。我假设这是一个关于饱和数据库的特权问题。然而,我从未见过这种错误,我不知道该去哪里寻找。有人能提供建议吗 原因:java.io.IOException:org.postgresql.util.psqleexception:错误:拒绝大对象109138的权限 位于org.postgresql.largeobject.BlobInputStream.read(
自PostgreSQL 9.0以来,大型对象具有权限(表
pg\u largeobject\u metadata
的列lomacl
)。默认情况下,除了所有者(列lomowner
)之外,没有人对大型对象有任何权限
因此,这似乎是一个版本迁移问题(例如,您没有使用较新版本的
pg_dump
来创建转储),或者您正试图在登台环境中以不同的用户身份访问大型对象。在postgresql.conf
中更改低兼容性特权
为on
。这对我来说很有效可能是一个原因。这里回答了一个类似的问题,为了快速解决这个问题,您可以在postgresql.conf
中添加locompat\u privilege=on
,您应该添加作为答案,就是这样。对我来说是后者。这是一个快速修复(从9迁移到10)