Ausführen einer Gespeicherten Oracle-Proc als ein Anderer Benutzer

Bin ich meistens einer oracle-Neuling, also verzeiht mir, wenn dies eine dumme Frage...

Habe ich ein schema mit dem Namen 'CODE' mit eine gespeicherte Prozedur, die ausgeführt wird, beliebige SQL (für den Moment ignorieren Sie bitte die potenziellen Sicherheits-Probleme, die im Zusammenhang mit, dass). Der SQL-Code übergeben wird, wählen Sie "Daten"; sondern alle Daten befinden sich entweder in der schema A, B oder C - aber die SQL wählen Sie immer nur von EINEM schema zu einem Zeitpunkt.

Beispiel: der Benutzer des Typs a erstellt Eine Zeichenfolge 'SELECT * FROM A. USERTABLE' -, während Nutzer vom Typ B erstellt einen string "SELECT * FROM B. USERTABLE'.

Was ich versuche zu tun, ist, dem Benutzer zu ermöglichen, die nicht explizit angeben, Ihr schema. In der front-end .net-Anwendung; ich schon wissen, ob Sie Typ A, B, oder C. ich möchte, dass alle drei einfach eingeben 'SELECT * FROM USERTABLE'.

Das problem das ich habe ist, dass ich nicht weiß, wie das geht. Meine app kann nur ausgeführt werden proc-im 'CODE' - schema - ich kann also nicht einfach den code duplizieren und lassen Sie Benutzer Ein Aufruf von 'A. ExecuteSQL'.

Habe ich versucht, ein paar Dinge, aber nichts hat geklappt so weit. Ich will die ExecuteSQL-proc, um zu bleiben in dem CODE-schema; aber wenn 'USERTABLE' übergeben bekommt, ich brauche es, zu wissen, dass manchmal das bedeutet, dass A. BENUTZERNAME und manchmal B. USERNAME.

Irgendwelche Vorschläge?

InformationsquelleAutor Rob P. | 2010-03-04
Schreibe einen Kommentar