将文档插入使用CREATE_MODE_MAP创建的Oracle SODA集合

n3schb8v  于 2023-02-15  发布在  Oracle
关注(0)|答案(2)|浏览(117)

我们有一个node.js应用程序,它将Oracle DB作为使用SODA API的后端。根据我们的内部DB策略,有一个拥有表的OWNER架构,而USER架构用于访问OWNER架构拥有的对象,以对其执行CRUD操作。相同的模型是否也可以用于SODA集合。Node.js应用程序使用基于SODA的Oracle驱动程序对这些集合执行操作。
我已经能够在OWNER模式中创建实际集合,然后在USER模式中创建Map集合。但是将文档插入Map集合的操作似乎失败了。可能我在这里缺少了授权或其他什么。

y53ybaqx

y53ybaqx1#

我是苏打水小组的。是的,听起来好像少了些补助金。
你得到的确切误差是多少?
也许可以尝试向用户模式授予对集合表(驻留在所有者模式中)的读/写权限。
例如(根据您要允许的权限相应地调整权限):
将所有者方案名称此处.集合表名称此处的选择、插入、更新、删除权限授予用户方案名称此处;
在底层,SODA针对支持集合的目标表为所有操作生成常规的插入/选择/更新/删除SQL,因此它需要通常的SQL赠款才能读/写目标表。

mec1mxoz

mec1mxoz2#

我不知道SODA。但是,有一些基本原则可能适用于这里:
1.如果SODA允许在名称前面加上对象所有者,那么就像以connect用户的身份进行连接并操作所有者对象一样简单,完全限定(update ownerschema.table set ....
1.如果SODA不允许这样做,或者您不希望完全限定对象名,则可以在连接用户模式下创建指向对象所有者模式(create synonym connectschema.table for ownerschema.table)的同义词。
选项#1或#2都要求连接模式被授权在拥有的模式对象上插入、更新、删除(只请求ALL)。
1.如果SODA执行它自己的字典查询/描述活动,并且不足以处理同义词(使用某些工具确实会发生这种情况),那么您可以在连接模式下创建视图,直接从拥有对象的模式(create view connectschema.table as select * from owningschema.table)中选择视图,它应该能够查询这些视图的结构,而不知道它们不是普通表,并且您可以对它们执行CRUD操作。
对于选项#3,连接模式将要求对拥有的模式对象授予插入、更新、删除赠款“WITH GRANT OPTION“。

相关问题