私は主にオラクルの初心者なので、これがばかげた質問であれば許してください...
任意の SQL を実行するストアド プロシージャを含む「CODE」というスキーマがあります (現時点では、それに関連する潜在的なセキュリティの問題は無視してください)。渡された SQL はデータを選択します。ただし、すべてのデータはスキーマ A、B、または C のいずれかに存在しますが、SQL は一度に 1 つのスキーマからのみ選択します。
例: タイプ A のユーザーは文字列 'SELECT * FROM A.USERTABLE' を作成しますが、タイプ B のユーザーは文字列 'SELECT * FROM B.USERTABLE' を作成します。
私がやろうとしているのは、ユーザーがスキーマを明示的に指定できないようにすることです。フロントエンドの .net アプリケーション。それらがタイプ A、B、または C のいずれであるかは既にわかっています。3 つすべてに単純に「SELECT * FROM USERTABLE」と入力してもらいたいのです。
私が抱えている問題は、それを行う方法がわからないことです。私のアプリは 'CODE' スキーマでのみ proc を実行できます。そのため、コードを複製してユーザー A に 'A.ExecuteSQL' を呼び出させることはできません。
いくつか試してみました。しかし、これまでのところ何も機能していません。ExecuteSQL プロシージャを CODE スキーマにとどめたい。しかし、'USERTABLE' が渡されたとき、それが A.USERNAME を意味することもあれば、B.USERNAME を意味することもあるということを知っておく必要があります。
助言がありますか?