作为模式的用户或所有者运行 DBUnit 之间有区别吗
目前我正在使用 DBUnit 来测试我的网络服务。
当我使用架构的所有者指定数据库用户凭据时,一切正常。
如果我将数据库凭据更改为以用户身份登录,我会得到:
> [Main Thread] ERROR org.dbunit.database.DatabaseDataSet - Table
> 'ens_mrm_configuration' not found in
> tableMap=org.dbunit.dataset.OrderedTableNameMap[_tableNames=[],
> _tableMap={}, _caseSensitiveTableNames=false]
我知道所有者应该首先为我想要访问的所有表授予 SELECT、UPDATE 和 INSERT (所以我就是这么做的) 我还创建了 SYNONYMS 来引用实际的表格。最后,这两个场景都有效,但是如果我以用户身份运行测试,则第一个测试会失败并出现此错误。
那么 DBUnit 处理这个问题的方式有什么不同吗?我目前正在使用 dbunit 2.4.8 和 SpringJUnit。
更新 所以我发现我犯了一个错误。测试实际上并没有 当我使用用户凭据进行测试时,它完全可以工作。
Currently I'm using DBUnit for testing my webservices.
When I specify the db user credentials with the OWNER of the schema everything works just fine.
If I change the db credentials to login as a USER I get:
> [Main Thread] ERROR org.dbunit.database.DatabaseDataSet - Table
> 'ens_mrm_configuration' not found in
> tableMap=org.dbunit.dataset.OrderedTableNameMap[_tableNames=[],
> _tableMap={}, _caseSensitiveTableNames=false]
I'm aware the the OWNER should first grant SELECT, UPDATE and INSERT for all tables I want to access (so I did just that) I also created SYNONYMS to refer to the actual tables. In the end both scenario's work, but the first test fails with this ERROR If I run the tests as a USER.
So is there a difference how DBUnit handles this? Im currently working with dbunit 2.4.8 and SpringJUnit.
UPDATE
So I found out that I made a mistake my bad. The tests actually don't
work at all when I test with the USER credentials.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您究竟是如何创建同义词的?
在 Oracle 中,同义词可以是公共的(在这种情况下,它对所有用户可见)或私有的(在这种情况下,它仅对同义词的所有者可见)。您正在创建公共同义词吗?或者您正在创建私人同义词?
公共同义词是使用
PUBLIC
关键字创建的,而私有同义词则不是。
如果您要创建私有同义词,则需要在
USER
架构中创建同义词。如果您以
USER
身份登录,您可以运行此查询并发布结果吗Exactly how are you creating the synonyms?
In Oracle, a synonym can be either public (in which case it is visible to all users) or private (in which case it is visible only to the owner of the synonym). Are you creating public synonyms? Or are you creating private synonyms?
Public synonyms are created using the
PUBLIC
keywordwhile private synonyms are not
If you are creating private synonyms, the synonyms need to be created in the
USER
schema.If you log in as
USER
, can you run this query and post the results