【问题标题】:"Database not found" error while trying to connect to Hana with JDBC尝试使用 JDBC 连接到 Hana 时出现“找不到数据库”错误
【发布时间】:2018-02-12 14:36:17
【问题描述】:

这很好用:

GRANT SELECT ON SCHEMA DB1 TO USER1;

但是当我尝试在指定数据库的 SQuirreL 中连接时:

我收到以下错误:

com.sap.db.jdbc.exceptions.JDBCDriverException 类:SAP DBTech JDBC: 无法连接到 jdbc:sap://10.194.19.20:39013/ [SAP DBTech JDBC: [2]:一般错误:数据库'DB1'不存在]。

如果我尝试在不指定数据库的情况下进行连接,它可以正常工作,并且我可以在 DB1 上毫无问题地运行选择。但我需要连接到在 URL 中指定数据库的 Hana。有什么问题以及如何解决?

【问题讨论】:

    标签: hana


    【解决方案1】:

    数据库和架构是实例或租户上的两个不同对象。

    在数据库中,数据库用户拥有自己的对象,这些对象包含在模式中 所以每个数据库用户都可以有一个单独的模式。 Schema 对象主要用于安全性。 正如在您的示例代码中,您正在向用户 USER1 授予或允许对 DB1 模式中的对象执行 SELECT 命令。 (所以USER1可以查询用户DB1的对象)

    在您与我们共享的数据库连接中,您需要提供数据库名称,而不是架构用户。

    您可以在 SAP GUI 上使用 系统 > 状态 菜单选项找到数据库名称。 您将看到数据库数据部分。使用“Name”文本框中的值。

    通常,每个连接用户都映射到一个默认数据库用户(因此映射到数据库上的默认架构)

    【讨论】:

      【解决方案2】:

      currentSchema代替databaseName

        "jdbc:sap://10.194.19.20:39013?currentSchema=DB1"
      

      【讨论】:

        猜你喜欢
        • 2013-04-30
        • 2015-07-10
        • 2016-06-21
        • 1970-01-01
        • 2017-08-20
        • 2014-06-10
        • 1970-01-01
        • 2011-10-06
        • 2016-02-08
        相关资源
        最近更新 更多