在spring应用程序中,我正在内存h2数据库中运行一些单元测试。同时与内存中的h2数据库交互,我创建了一些用户并授予他们一些权限。我可以看到用户正在被成功地创建(我假设这是因为命令在没有任何问题的情况下被成功地执行,而授予权限命令也被成功地执行了)。我想列出目前存在于数据库中的所有现有用户,并希望与我创建的用户一起断言结果。
我知道我们使用数据库查询列出了mySql数据库中的所有用户:
select * from mysql.user我只想实现同样的事情,但在内存h2数据库。有人知道如何在内存数据库中获取h2中所有用户的列表吗?
我正在尝试这个查询select * from users,但是系统会抛出异常,指示用户表不存在。有办法让h2数据库中的所有用户都使用吗?
我已经尝试过显示命令,但是show tables只列出了由我的应用程序创建的表。我并不是自己创建任何用户表,我假设内存中的h2将有任何表保存用户信息,就像mysql.user表一样。show schemas还显示我的数据库已经在h2内存数据库中创建了。
谢谢。
发布于 2021-12-02 13:44:34
正如注释中所述:您确实在INFORMATION_SCHEMA模式下找到了USERS表。因此,您必须查询:select * from INFORMATION_SCHEMA.USERS;
DBMS组织内部结构的方式与DBMS有很大的不同。正如您所说的,在mysql中,mysql.users中有users表(据我所知,至少对于MariaDB是这样),对于H2,在INFORMATION_SCHEMA.USERS中也有相同的表。
https://stackoverflow.com/questions/70197865
复制相似问题