【问题标题】:Changing H2 database admin user & password within Grails在 Grails 中更改 H2 数据库管理员用户和密码
【发布时间】:2015-06-11 12:01:57
【问题描述】:

使用 Grails 2.3.3 我想更改我的 H2 数据库的 sa 密码,或者可能将 sa 替换为具有相同管理员权限的不同用户名。

如果我使用 setpassword 命令更改 dbconsole 中的 sa 密码,然后更新 datasource.groovy 文件中的密码,我只需要这样做吗?或者我需要更新Grails环境中的其他配置文件吗?

我试图通过在 dbconsole 中创建一个具有管理员权限的新用户来提高安全性。然后我更改了 DataSource.groovy 文件中的用户名和密码。但是应用程序无法启动,我收到错误“无法创建初始连接池 - 用户名或密码错误”,大概是在环境中的其他地方设置了 sa 用户。了解所有数据库登录值的定义位置会很有用吗?

【问题讨论】:

    标签: grails h2


    【解决方案1】:

    DataSource.groovy 是 Grails 查找数据库连接信息的唯一位置。插件或自定义数据源/连接池可以在外面配置,但 Grails 本身只在那里查看。

    您是在使用基于文件的 H2 数据库,还是在 Grails 之外将其作为独立服务器启动?在这些情况下,在数据库中进行更改并在DataSource.groovy 中进行相应的更改就足够了。如果您使用的是内存数据库,当您重新启动应用程序时,您的用户额外用户将丢失。

    【讨论】:

    • 它是 Grails 中基于 H2 dB 的文件。 - 当我在 GGTS 中停止我的应用程序时,dB 服务器也会停止。当我在 GGTS 中重新启动应用程序时,我在用户运行时对用户所做的所有 dB 更改 - 即更改 sa pwd 并添加具有管理员权限的新用户都被重置。我的目标是通过战争文件让这个工作在线。所以我希望能够使它更安全——也许我需要将 H2 db 配置为独立于 Grails 运行以提高密码安全性——也许你可以指导我阅读一些文档?很高兴在这个阶段使用基于文件的 H2 系统。
    • 我想将使用内存中/嵌入式 H2 dB 应用程序的 grails 应用程序从本地开发转移到在线生产。为了保持这个简单,我期望简单地创建一个 app.war 文件并将其放置在 tomcat 环境中。 'in-memory' H2 dB 是否会成为其中的一部分 - 还是我需要重新配置以便单独的数据库作为独立的 H2 服务器运行?如果它可以在“内存中”工作,是否有办法重置 sa 密码,或者“内存中”密码是否固定为空白?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-08
    • 2018-08-09
    • 2011-09-09
    • 2017-03-25
    • 2021-10-18
    • 1970-01-01
    • 2014-04-29
    相关资源
    最近更新 更多