【问题标题】:Endless troubles with setting up DB2 and IBM Data Studio设置 DB2 和 IBM Data Studio 的无尽麻烦
【发布时间】:2020-01-06 08:04:46
【问题描述】:

我必须在我的教职员工的课程中使用 DB2。我在 Windows 10 上,安装了 DB2 express C,安装了 Data Studio。在安装过程中,我使用“db2admin”作为用户名,使用“admin”作为密码。然后我运行了我们教员提供的一系列 SQL 脚本来生成我们需要的所有表并填充它们。这显然也有效。

这就是问题所在。所有的表都是在那个模式“aleksa”下制作的,它恰好是我的计算机用户名。

从命令行我可以做任何事情。数据工作室是问题所在。连接到数据库时,我使用上面提到的 db2admin 和 admin 作为凭据。起初,当我尝试运行任何查询时,我不断收到一些授权错误。然后我用谷歌搜索了一段时间,发现我需要授予对这些表的 db2admin 访问权限(为什么管理员帐户需要授予任何东西比我好)。所以我通过从命令行连接到数据库来做到这一点(顺便说一句,命令行从不要求我输入任何凭据),并运行一系列

grant select on <table_name> to user db2admin

我不知道我是否应该这样做,但为了以防万一,我也跑了

grant all on <table_name> to user db2admin

所有这些,当然,对于我拥有的每张桌子。

而且他们每个人都成功地运行了。这样做之后,我在运行查询时不再在 Data Studio 中收到授权错误。但我也没有得到任何东西。

重复一遍,从命令行运行查询可以正常工作,这就是为什么我知道数据库正常并且其中实际上有数据的原因。这也是为什么我知道从 Data Studio 而不是命令行运行的相同查询的输出不应该只是查询执行时间并且在“SQL 结果”窗口中没有结果。就我而言,我尝试过的查询只是“从 aleksa.table_name 中选择 *”。它们在命令行中生成一堆行,但在 Data Studio 中没有。

那么,有什么想法吗?

【问题讨论】:

    标签: db2


    【解决方案1】:

    Db2 正在按设计工作。

    您的问题不是关于编程,而是关于管理和运营方面。

    如果您没有接受过 Db2 基础教育,您可能会遇到“无穷无尽的麻烦”。

    考虑在使用 Db2 之前接受一些 Db2 教育,或者学习针对您的 Db2 版本的免费在线 Db2 知识中心,直到您了解所需的概念。

    Stakoverflow 不能替代教育

    如果您(在 DataStudio 中)使用 创建 对象的 相同 凭据进行连接,则引用这些对象的查询将不会出现访问错误(默认情况下),并且将看到对象中存在的数据。

    如果您希望架构名称为“aleksa”并且您确实希望架构名称改为“db2admin”,则在以 db2admin 身份连接到数据库的同时再次运行脚本(如果两个模式都不适合,帐户 aleksa 还可以先删除 alesksa 模式中的所有现有对象)。

    如果您使用的凭据与创建者的凭据不同,您可能会遇到访问错误取决于脚本所做的操作。我们看不到脚本做了什么,它们可能对表应用了非默认权限,或者使用了角色,或者需要某些组成员资格等。我们也看不到您的 Db2 是如何配置的。想必你能看到这样的细节。

    db2admin 帐户(默认情况下,在当前版本的 Db2 中)不是 SECADM,因此 db2admin 无法获得数据访问权限,并且定义为 SECADM 的帐户能够将数据访问权限和 accessctrl 权限授予其他帐户。

    如果您的查询完全限定对象名称(即指定架构和表名称),并且这些对象存在,并且连接帐户具有 SELECT 访问权限,并且对象包含数据,那么DataStudio 将显示数据(或错误)。

    在线研究 Db2 文档的相关页面以获取更多详细信息。

    DataStudio 与 Db2 并没有什么特别之处,只是它涵盖了所有平台上的所有 Db2 功能。 IBM Data Studio 是一个 java 应用程序,并且存在许多其他类似的工具,但对高级 Db2 功能的覆盖较少。

    【讨论】:

    • 我的问题最初包含一些关于 db2 真的不是我最喜欢的事实的评论。该课程更侧重于关系数据库本身和基本概念,而不是 DB2。这就是为什么这门课程没有教我们任何高级 DB2 东西,这就是为什么我什么都不知道。然而,这被某人删除了。至于问题本身,我没有解决它,而是避免了它。我只是切换到 DBeaver 而不是 Data Studio,并且在那里一切正常,无需对数据库本身进行任何更改。还是谢谢
    猜你喜欢
    • 2017-07-31
    • 1970-01-01
    • 2015-09-01
    • 1970-01-01
    • 2015-05-09
    • 2013-07-06
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    相关资源
    最近更新 更多