gpt4 book ai didi

java - postgresql:关系的权限被拒绝

转载 作者:搜寻专家 更新时间:2023-10-30 20:01:06 24 4
gpt4 key购买 nike

我正在使用 postgresql 和 java (NetBeans) 构建一个项目。

当我尝试执行一个简单的查询(select * from costumer)时,我得到一个错误,告诉我“关系客户的权限被拒绝”。

当我搜索答案时,我发现所有关于授予用户权限的内容,所以我进入 pgAdmin 并写下“grant all privileges on database dirty to henrik;” .这并没有改变任何东西 - 这就是我发布新帖子的原因..

程序完整的错误信息输出:

run:
1
2
3

Mar 23, 2014 7:47:18 PM sletdendog.SletDenDog main
SEVERE: ERROR: permission denied for relation costumer
org.postgresql.util.PSQLException: ERROR: permission denied for relation costumer
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2157)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1886)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:255)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:555)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:417)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:302)
at sletdendog.SletDenDog.main(SletDenDog.java:27)

BUILD SUCCESSFUL (total time: 0 seconds)

Java 程序非常简单——看起来像这样:

package sletdendog;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;

public class SletDenDog {

private static Connection connection = null;
private static PreparedStatement statement = null;
private static ResultSet result = null;
private static ResultSetMetaData meta = null;

public static void main(String[] args) {

try{
System.out.println("1");
connection = DriverManager.getConnection("jdbc:postgresql://localhost/dirty", "henrik", "hokus pokus");
System.out.println("2");
statement = connection.prepareStatement("select * from costumer;");
System.out.println("3");
result = statement.executeQuery();
System.out.println("4");
meta = result.getMetaData();
System.out.println("5");
for (int i = 1; i <= meta.getColumnCount(); i++) {
System.out.println(meta.getColumnName(i));
}

} catch (SQLException ex){
Logger lgr = Logger.getLogger(SletDenDog.class.getName());
lgr.log(Level.SEVERE, ex.getMessage(), ex);
} finally {
try{
if(connection != null){
connection.close();
}
if(statement != null){
statement.close();
}
if(result != null){
result.close();
}
} catch(SQLException ex){

System.out.println("Something wasn't closed...");

}
}
}
}

最佳答案

数据库权限不够。
您还至少需要相关架构的 USAGE 权限和表的 SELECT 权限。

这个密切相关的答案中有更多详细信息:
How to grant all privileges on views to arbitrary user

关于java - postgresql:关系的权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com