Java 如何向当前用户授予权限

Java 如何向当前用户授予权限,java,database,jdbc,db2,Java,Database,Jdbc,Db2,我正在尝试制作一个使用数据库的java应用程序。我下载了db2并创建了一个用户“student”。我的程序中有以下几行: con = DriverManager.getConnection(url, "student", "xxxxxx"); 及 第二个抛出一个SqlSyntaxErrorException,其中包含以下消息:db2sql错误:SQLCODE=-551,SQLSTATE=42501 所以我查了一下,用户似乎没有所需的权限级别。因此,当我尝试在db2命令行中运行查询时,我得到:

我正在尝试制作一个使用数据库的java应用程序。我下载了db2并创建了一个用户“student”。我的程序中有以下几行:

con = DriverManager.getConnection(url, "student", "xxxxxx"); 

第二个抛出一个SqlSyntaxErrorException,其中包含以下消息:db2sql错误:SQLCODE=-551,SQLSTATE=42501

所以我查了一下,用户似乎没有所需的权限级别。因此,当我尝试在db2命令行中运行查询时,我得到:

该语句失败,因为授权ID没有执行该操作所需的授权或特权。授权ID:“学生”。操作:“选择”


因此,很明显,我几乎不知道自己在做什么,我不知道如何授予“学生”必要的特权。也就是说,我不知道哪个用户可以给他特权,因为我从未创建过其他用户。我已经看到上面提到的“db2admin”(我正在使用windows),但我不知道如何处理这段信息。我不知道如何检查现有用户或使用哪个密码进行db2admin(如果可能的话)。

如果希望此用户具有访问权限,则需要确定在哪个级别:服务器、实例、数据库、表等。下面是一篇关于和各个级别的文章

为了方便起见,假设该用户将拥有完整的数据库权限,我们将使用


您的模式和表没有发布有点难。。。但试着运行下面的查询,它将授予您正在尝试的用户访问权限——db2将数据库上的数据访问权限授予用户YOURUSERNAME@ASP对不起,我真的不知道哪些信息是相关的。如果我尝试这样做,我会得到:“学生”无权执行“授予”操作。我不知道如何使用另一个用户。您需要一个具有管理员权限的帐户才能运行该查询环顾四周看看db2在您安装它时是否创建了一个新的windows用户(通常是:
db2admin
),然后尝试以该用户的身份连接/运行
grant
(默认pwd可能与用户名相同,除非您在安装过程中提供了用户名)。
ResultSet rs= stmt.executeQuery("SELECT sifra, naziv " +
                        " FROM predmet " +
                        " WHERE bodovi > 20" );
GRANT ACCESSCTRL, BINDADD, CONNECT, CREATETAB, CREATE_EXTERNAL_ROUTINE, 
    CREATE_NOT_FENCED_ROUTINE, DATAACCESS, DATAACCESS, EXPLAIN, 
    IMPLICIT_SCHEMA, LOAD, QUIESCE_CONNECT, SECADM, SQLADM, WLMADM ON 
    DATABASE DB_STUDENT TO student;