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

使用Hibernate时独立应用程序中的数据源配置

  •  0
  • janetsmith  · 技术社区  · 15 年前

    我想知道,在独立应用程序中,数据库配置存储在哪里。客户端直接连接到数据库(我知道这不是个好主意,但我不允许为RMI创建服务器或打开新端口)

    我当然不希望用户打开Hibernate配置xml文件并获取所有详细信息(数据库用户名和密码等)。

    2 回复  |  直到 12 年前
        1
  •  1
  •   wds    15 年前

    如果你的客户端应用程序最终需要详细信息,用户可以通过某种方式访问它们。在这里你能做的最好的事情就是混淆细节。您可以只对它们进行base64编码并将它们存储在属性文件(而不是hibernate.properties)中,然后在获取会话工厂之前将它们加载到您自己的文件中。要加载配置属性,可以使用 Configuration 上课。

    如果你想挫败稍有见识的客户机,你也可以对它们进行加密,并将密钥作为静态字段存储在代码中。这并不能保证它的安全性,但有可能你的客户端还没有足够的能力来反编译源代码,并亲自看看你是如何解密这些东西的。

    记住要加强服务器端的安全性。(确保DB帐户具有最低权限!)另外,不允许远程服务但允许直接访问数据库对我来说似乎不是一个非常明智的策略。

        2
  •  0
  •   Nick Holt    15 年前

    希望您有一个目录服务器(任何J2EE应用服务器都可以),然后弹出一个数据源并使用Spring jndi-lookup 去找回它。

    如果不能像@wds所说的那样,它会加密凭证,甚至提示,为数据库中的每个用户创建受限帐户。

    我对客户端数据库访问没有这样的问题——在SOA出现之前,它已经运行了好几年——只要确保用户帐户只有有限的权限——只对表选择访问权限,甚至通过视图执行所有查找(同样具有必要的权限),并在所需的过程中执行。