相关疑难解决方法(0)

以另一个用户身份执行Oracle存储过程

我主要是一个神谕新手,所以请原谅我,如果这是一个愚蠢的问题......

我有一个名为'CODE'的模式,其存储过程执行任意SQL(现在,请忽略与之相关的潜在安全问题).传入的SQL将选择数据; 但是所有数据都驻留在模式A,B或C中 - 但SQL只能一次从一个模式中选择.

例如:类型A的用户创建一个字符串'SELECT*FROM A.USERTABLE' - 而类型B的用户创建一个字符串'SELECT*FROM B.USERTABLE'.

我要做的是允许用户不明确指定他们的架构.在前端.net应用程序中; 我已经知道它们是A型,B型还是C型.我希望这三个只需输入'SELECT*FROM USERTABLE'.

我遇到的问题是我不知道该怎么做.我的应用程序只能在'CODE'模式中执行proc - 所以我不能只复制代码并让用户A调用'A.ExecuteSQL'.

我尝试过几件事; 但迄今为止没有任何工作.我希望ExecuteSQL proc保留在CODE模式中; 但是当'USERTABLE'传入时,我需要知道有时这意味着A.USERNAME,有时候是B.USERNAME.

有什么建议?

sql oracle schema plsql oracle11g

9
推荐指数
2
解决办法
3万
查看次数

标签 统计

oracle ×1

oracle11g ×1

plsql ×1

schema ×1

sql ×1