HSQLDB - 无效的授权规范
Posted
技术标签:
【中文标题】HSQLDB - 无效的授权规范【英文标题】:HSQLDB - invalid authorization specification 【发布时间】:2012-05-23 23:07:39 【问题描述】:我需要帮助解决在 hsqldb-2.2.8 上通过 JPA/Hibernate 连接数据库期间出现的问题:
[AWT-EventQueue-0] ERROR org.hibernate.util.JDBCExceptionReporter - invalid authorization specification - not found: manasouza
我创建了一些用户(manasouza),密码如下:
CREATE USER manasouza PASSWORD 123 ADMIN
我使用 SQLWorkbench 作为我的数据库可视化工具,使用它我可以正常登录。 使用 JPA/Hibernate,我已经尝试了大写的用户名和密码为“123”或密码显示在 SYSTEM_USERS 数据库表的 PASSWORD_DIGEST 列上的值,但根本没有成功。
【问题讨论】:
【参考方案1】:当您使用CREATE USER manasouza PASSWORD 123 ADMIN
时,HSQLDB 2.2.8 会引发异常。因此,您必须使用不同的密码。
用户名被转换为全大写,因为它没有被双引号引起来。对于密码,您应该在字符串周围使用单引号。如果您定义不带单引号的密码,则它必须以字母开头并转换为全大写。因此,如果您想要确切的情况,请使用CREATE USER "manasouza" PASSWORD '123' ADMIN
【讨论】:
感谢@fredt 的提示。我已经做到了,但还没有成功。我发现了一些东西并通过 URL 从jdbc:hsqldb:hsql//localhost
更改为jdbc:hsqldb:file:test//localhost
。这样,用户认证问题就解决了。然后我再次为保存在file:test
上的这个数据库创建我的表和序列,但现在系统抱怨找不到表,尽管我的 JPA 映射是正确的:ERROR org.hibernate.util.JDBCExceptionReporter - user lacks privilege or object not found: GFMA_MANUFACTURER
其中 GFMA_MANUFACTURER 是我的表之一......
您的网址不正确。第一个用于服务器,应该是jdbc:hsqldb:hsql://localhost
。第二个用于进程内文件数据库,应为:jdbc:hsqldb:file:test;shutdown=true
。请参阅有关服务器和进程内数据库的指南。
好的...再次感谢。现在我很清楚服务器连接和文件连接之间的区别。现在的问题是为什么服务器连接没有授权我的用户,而进程内文件数据库却......
我决定重新制作我所有的数据库配置,现在它似乎工作正常。一定是我一开始就搞错了。我正在使用服务器数据库...感谢您的帮助以上是关于HSQLDB - 无效的授权规范的主要内容,如果未能解决你的问题,请参考以下文章