代码之家  ›  专栏  ›  技术社区  ›  ps0604

尝试使用JDBC连接到Hana时出现“找不到数据库”错误

  •  1
  • ps0604  · 技术社区  · 7 年前

    这很好:

    GRANT SELECT ON SCHEMA DB1 TO USER1;
    

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

    enter image description here

    我得到以下错误:

    类别com。液数据库。jdbc。例外情况。JDBCDriverException:SAP DBTech JDBC: 无法连接到jdbc:sap://10.194.19.20:39013/[SAP DBTech JDBC: [2] :常规错误:数据库“DB1”不存在]。

    如果我尝试在不指定数据库的情况下进行连接,它工作得很好,我可以在DB1上运行select而不会出现问题。但我需要连接到Hana,在URL中指定数据库。问题是什么?如何解决?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Eralper    7 年前

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

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

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

    您可以在SAP GUI上使用 系统(>);地位 菜单选项。 您将看到数据库数据部分。使用“”中的值 名称 “”文本框。

    通常,每个连接用户都映射到默认的数据库用户(也就是数据库上的默认模式)

        2
  •  0
  •   ps0604    7 年前

    而不是 databaseName 使用 currentSchema

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