如何为当前用户授予权限

时间:2015-06-08 14:32:28

标签: java database jdbc db2

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

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

ResultSet rs= stmt.executeQuery("SELECT sifra, naziv " +
                        " FROM predmet " +
                        " WHERE bodovi > 20" );

第二个抛出SqlSyntaxErrorException,并显示以下消息:DB2 SQL Error:SQLCODE = -551,SQLSTATE = 42501。

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

  

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

所以很明显我几乎不知道自己在做什么,我不知道如何给予'学生'必要的特权。也就是说,我不知道用户可以给他什么特权,因为我从未创建过其他用户。我已经看过'db2admin'了(我正在使用windows),但我不知道如何处理这些信息。我不知道如何检查现有用户或用于db2admin的密码(如果可能的话)。

1 个答案:

答案 0 :(得分:0)

如果您希望此用户具有访问权限,您需要确定在什么级别:服务器,实例,数据库,表等。这是一篇关于DB2 Granting和各种级别的文章。

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

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;