如何向当前用户授予权限

Posted

技术标签:

【中文标题】如何向当前用户授予权限【英文标题】:How to grant privileges to current user 【发布时间】:2015-06-08 14:32:28 【问题描述】:

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

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

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

第二个引发 SqlSyntaxErrorException 并显示以下消息:DB2 SQL 错误:SQLCODE=-551, SQLSTATE=42501。

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

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

所以显然我几乎不知道自己在做什么,所以我不知道如何授予“学生”必要的特权。也就是说,我不知道哪个用户可以给他特权,因为我从未创建过另一个用户。我见过提到“db2admin”(我正在使用 Windows),但我不知道如何处理该信息。我不知道如何检查现有用户或用于 db2admin 的密码(如果可能的话)。

【问题讨论】:

你没有你的模式和表发布它有点困难......但尝试运行以下查询它将授予你正在尝试的用户访问权限---- db2将数据库上的数据访问权限授予用户你的用户名 @ASP 抱歉,不知道哪些信息是相关的。如果我尝试这样做,我会得到:“STUDENT”没有执行“GRANT”操作的权限。而且我不知道如何使用其他用户。 您需要一个具有管理员权限的帐户才能运行该查询。 查看 db2 在安装时是否创建了新的 windows 用户(通常为:db2admin),并尝试以该用户身份连接/运行grant(默认密码可能与用户名相同,除非您在安装过程中提供)。 【参考方案1】:

如果您希望此用户具有访问权限,您需要确定在哪个级别:服务器、实例、数据库、表等。这是一篇关于 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;

【讨论】:

以上是关于如何向当前用户授予权限的主要内容,如果未能解决你的问题,请参考以下文章

如何向 sql server 用户授予 sendmail 权限?

如何向 Liferay 中新创建的用户授予 Alfresco 权限

如何向属于某个组的用户授予完全 AWS 账户访问权限

如何在 NiFi 中向管理员用户授予所有权限

如何向组中的特定用户授予文件权限?

Microsoft Graph API - 如何通过 API 向特定用户授予对我的收件箱的访问权限