Cuando intento ejecutar una vista que incluye tablas de diferentes esquemas, se lanza un ORA-001031 Privilegios insuficientes. Estas tablas tienen permiso de ejecución para el esquema donde se creó la vista. Si ejecuto la declaración SQL de la vista, funciona. ¿Qué me estoy perdiendo?ORA-01031: privilegios insuficientes al seleccionar ver
Respuesta
Como propietario de la tabla, debe otorgar acceso SELECCIONAR en las tablas subyacentes al usuario con el que ejecuta la instrucción SELECT.
Si se accede a la vista mediante un procedimiento almacenado, la concesión de ejecución es insuficiente para acceder a la vista. Debes otorgar seleccionar explícitamente.
Finalmente lo conseguí para trabajar. La respuesta de Steve es correcta, pero no para todos los casos. Falla cuando esa vista se está ejecutando desde un tercer esquema. Para que funcione, debe agregar la opción de concesión:
GRANT SELECT ON [TABLE_NAME] TO [READ_USERNAME] WITH GRANT OPTION;
De esa manera, [READ_USERNAME] también puede otorgar privilegio de selección sobre la vista a otro esquema
P. ¿Cuándo es el "con la opción de concesión" necesaria?
A. cuando tiene una vista ejecutada desde un tercer esquema.
Ejemplo: esquema DSDSW tiene una vista llamada view_name
a) that view selects from a table in another schema (FDR.balance)
b) a third shema X_WORK tries to select from that view
subvenciones típicas: concesión de seleccionar en dsdw.view_name a dsdw_select_role; otorgar dsdw_select_role a fdr;
Pero: fdr obtiene select count (*) de dsdw.view_name; ERROR en la línea 1: ORA-01031 : privilegios insuficientes
tema de la subvención:
grant select on fdr.balance to dsdw with grant option;
ahora FDR: select count (*) de dsdw.view_name; 5 filas
Déjame hacer una recapitulación.
Cuando construye una vista que contiene objetos de diferentes propietarios, esos otros propietarios tienen que otorgar "con opción de concesión" al propietario de la vista. Así, el propietario de la vista puede conceder a otros usuarios o esquemas ....
Ejemplo: user_a es el propietario de una tabla llamada mine_a USER_B es el propietario de una tabla llamada yours_b
Digamos que quiere usuario_b para crear una vista con una combinación de mine_a y yours_b
para el fin de funcionar bien, user_a tiene que dar "subvención seleccionar en mine_a a USER_B con la opción de concesión"
Entonces usuario_b puede concesión de seleccionar en ese fin de todos.
Si se accede a la vista a través de un procedimiento almacenado, la concesión de ejecución es insuficiente para acceder a la vista.Debes otorgar seleccionar explícitamente.
simplemente escriba esta subvención
todos en al público;
Para usar una vista, el usuario debe tener los privilegios apropiados, pero solo para la vista en sí, no para los objetos subyacentes. Sin embargo, si se eliminan los privilegios de acceso para los objetos subyacentes de la vista, entonces el usuario ya no tiene acceso. Este comportamiento se produce porque el dominio de seguridad que se utiliza cuando un usuario consulta la vista es el del definidor de la vista. Si los privilegios sobre los objetos subyacentes se revocan desde el definidor de la vista, la vista deja de ser válida y nadie puede usar la vista. Por lo tanto, incluso si a un usuario se le ha otorgado acceso a la vista, es posible que el usuario no pueda usar la vista si los derechos del definidor han sido revocados desde los objetos subyacentes de la vista.
la documentación de Oracle http://docs.oracle.com/cd/B28359_01/network.111/b28531/authorization.htm#DBSEG98017
- 1. Privilegios insuficientes al agregar la restricción FK (Oracle)
- 2. ORA-01031: privilegios insuficientes al crear el paquete
- 3. ¿Cómo ver privilegios de usuario usando windows cmd?
- 4. Visual Studio tiene privilegios insuficientes para depurar este proceso. Para depurar este proceso, Visual Studio debe ejecutarse como administrador
- 5. argumentos insuficientes para cadena de formato
- 6. Cakephp - seleccionar al azar de la base de datos y Ver
- 7. Concesión de privilegios de DBA al usuario en Oracle
- 8. ¿Cómo ver excepciones al depurar?
- 9. phpMyAdmin informa 'Sin privilegios'
- 10. Cómo ver el registro de eventos de Windows de forma remota con privilegios limitados
- 11. Oprimir privilegios de root
- 12. ¿privilegios seguros chmod?
- 13. MSDeploy EjecutarComando privilegios
- 14. Diferencia entre seleccionar de la tabla directamente y ver
- 15. Seleccionar siguiente al último tr
- 16. LINQ seleccionar al nuevo objeto
- 17. ¿SELECCIONAR usuarios de la base de datos MySQL por privilegios bitmask?
- 18. Gnome shell escalada de privilegios
- 19. Autenticación de CodeIgniter + privilegios de usuario
- 20. personalizada comprobable Ver que responde al selector
- 21. Mostrar usuarios con privilegios a la base de datos. MySQL
- 22. Linq Seleccionar instrucción lenta al obtener COUNT
- 23. iniciar carga de archivo al seleccionar
- 24. Desactivar efecto de selección al seleccionar UITableViewCell
- 25. fila TSQL Seleccionar Min & Max al agrupar
- 26. Rendimiento jQuery al seleccionar varios elementos
- 27. jQuery evento al seleccionar la opción
- 28. Cómo ACTUALIZAR y SELECCIONAR al mismo tiempo
- 29. Seleccionar() llamada al sistema en hilos?
- 30. linq seleccionar una fila al azar
¿Qué pasa si dba concede el privilegio. No estoy obteniendo este trabajo aunque el usuario tiene privilegios concedidos por dba a las vistas creadas y las tablas subyacentes. – kinkajou
gracias, todavía está ayudando a la gente :) – Ilaria