无法为Grails创建加密的H2数据库

时间:2012-09-26 18:58:51

标签: grails encryption passwords h2

我有一个grails项目,我需要创建一个加密的H2数据库,但我不知道如何让它工作。这是我在DataSource.groovy中所拥有的:

dataSource {
    pooled = true
    driverClassName = "org.h2.Driver"
    dialect = "org.hibernate.dialect.H2Dialect"
    dbCreate = "update" // one of 'create', 'create-drop','update'
    url = "jdbc:h2:/opt/viewpoint/data/h2/viewpoint;MODE=MYSQL;CIPHER=AES"
    user = "sa"
    pwds = "filepwd password"
}

当我运行它时,我得到以下内容:

Caused by: org.h2.jdbc.JdbcSQLException: Wrong password format, must be: file password <space> user password [90050-117]
    at org.h2.message.Message.getSQLException(Message.java:105)
    at org.h2.message.Message.getSQLException(Message.java:116)
    at org.h2.message.Message.getSQLException(Message.java:75)
    at org.h2.message.Message.getSQLException(Message.java:151)
    at org.h2.engine.ConnectionInfo.convertPasswords(ConnectionInfo.java:264)
    at org.h2.engine.ConnectionInfo.<init>(ConnectionInfo.java:72)
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:94)
    at org.h2.Driver.connect(Driver.java:58)
    at java.sql.DriverManager.getConnection(DriverManager.java:582)
    at java.sql.DriverManager.getConnection(DriverManager.java:154)
    at $Proxy46.getMetaData(Unknown Source)
    ... 23 more

1 个答案:

答案 0 :(得分:3)

我不确定您从哪里获得数据源配置示例,但您需要使用usernamepassword而不是userpwds

dataSource {
  pooled = true
  // ...
  username = "sa"
  password = "filepwd password"
}