soy sobre todo un novato oráculo, así que perdónenme si esto es una pregunta estúpida ...Ejecución de una Proc almacenado de Oracle como otro usuario
tengo un esquema denominado 'código' con un procedimiento almacenado que se ejecuta arbitraria SQL (por ahora, ignore los posibles problemas de seguridad asociados con eso). El SQL que se transfiere seleccionará los datos; pero todos los datos residen en el esquema A, B o C, pero el SQL solo seleccionará de UN esquema a la vez.
Por ejemplo: el usuario del tipo A crea una cadena 'SELECCIONAR * FROM A.USERTABLE' - mientras que el usuario del tipo B crea una cadena 'SELECCIONAR * FROM B.USERTABLE'.
Lo que trato de hacer es permitir que el usuario no especifique explícitamente su esquema. En la aplicación front-end .net; Ya sé si son de tipo A, B o C. Quiero que los tres simplemente ingresen 'SELECCIONAR * DE USUARIO'.
El problema que tengo es que no sé cómo hacer eso. Mi aplicación solo puede ejecutar proc en el esquema 'CODE', por lo que no puedo simplemente duplicar el código y dejar que el usuario A llame 'A.ExecuteSQL'.
He intentado algunas cosas; pero nada ha funcionado hasta ahora. Quiero que el proc ExecuteSQL permanezca en el esquema de CÓDIGO; pero cuando se transfiere 'USERTABLE', necesito que sepa que a veces eso significa A.USERNAME y a veces B.USERNAME.
¿Alguna sugerencia?
¿Cómo funciona esto? La primera aplicación ejecuta esta sentencia 'ALTER' o la ejecuta en el procedimiento' CODE'? – Guru
http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:588045400346317188 tiene algo más de información. Parece que puede hacerlo con sql dinámico (ejecutar de inmediato) dentro de su proceso almacenado. –
@Guru: ver el enlace AskTom de Rob P –