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 - 无效的授权规范的主要内容,如果未能解决你的问题,请参考以下文章

如何连接到独立的 HSQLDB

无效的授权规范

Oracle 包规范何时变为无效

为 OAuth2 生成授权码的规范是啥?

HTTP 规范:代理授权和授权标头

SQLSTATE[22018]:强制转换规范的字符值无效