Utilizamos cookies propias y de terceros. Al navegar entendemos que aceptas el uso de cookies. +Info.
Política de cookies
Proyecto AjpdSoft

· Inicio
· Buscar
· Contactar
· Cookies
· Descargas
· Foros
· Historia
· Nosotros
· Temas
· Top 10
· Trucos
· Tutoriales
· Usuario
· Wiki

Proyecto AjpdSoft: Foros

AjpdSoft :: Ver tema - Error ORA-01720: la opción Otorgar no existe en Oracle
Foros de discusión Buscar Perfil FAQ Iniciar sesión
Information Error ORA-01720: la opción Otorgar no existe en Oracle

Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional   
Ver tema anterior :: Ver tema siguiente
AutorMensaje
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: Error ORA-01720: la opción Otorgar no existe en Oracle Responder citando

Tengo una base de datos Oracle sobre Window Server 2008 x64, es Oracle 10g x64. Tengo la siguiente casuística:

1. Por un lado un usuario que es propietario de estas tablas: FACTURAS, ALBARANES, CLIENTES, en su esquema FACTURACION (el nombre del usuario también es FACTURACION).

2. Por otro lado tengo un segundo usuario que tiene su propio esquema, llamado FACWEB y al que le he concedido permisos para que vea las tablas del usuario anterior, lo he hecho con:

Código:

grant select on "FACTURACION"."FACTURAS" to "FACWEB"


Este usuario FACWEB tiene en su esquema una vista llamada VTFACTURAS que he creado con:

Código:

create view VTFACTURAS as
select * from facturacion.facturas


Funciona perfectamente, la vista accede a la tabla FACTURAS del otro usuario FACTURACION.

3. Por último tengo un tercer usuario FACWEBLECTURA que debe ser de consulta en el esquema FACWEB (esquema del usuario anterior), este usuario sólo debe tener permisos de consulta (SELECT) para la vista "FACTURAS_CONSULTA". Si intento hacer un:

Código:

grant select on "FACWEB"."VTFACTURAS" TO "FACWEBLECTURA"


Me da el siguiente error:

Failed to commit: ORA-01720: la opción Otorgar no existe para 'FACTURACION.FACTURAS'

¿A qué puede ser debido? lo que quiero es que el usuario FACWEBLECTURA pueda ejecutar la vista VTFACTURAS del esquema FACWEB.


Nota: ya he probado a darle permisos de SELECT al tercer usuario FACWEBLECTURA para la tabla FACTURAS del usuario FACTURACION. Que es la tabla que utiliza la vista, así tampoco funciona y da el mismo error ORA-01720.
MensajePublicado:
Jue Sep 27, 2012 5:00 am
Top of PageVer perfil de usuario
alonsojpd
Administrador/Moderador


Registrado: Sep 16, 2003
Mensajes: 2687

Asunto: Re: Error ORA-01720: la opción Otorgar no existe en Oracle Responder citando



Anuncios



varios escribió:
Tengo una base de datos Oracle sobre Window Server 2008 x64, es Oracle 10g x64. Tengo la siguiente casuística:

1. Por un lado un usuario que es propietario de estas tablas: FACTURAS, ALBARANES, CLIENTES, en su esquema FACTURACION (el nombre del usuario también es FACTURACION).

2. Por otro lado tengo un segundo usuario que tiene su propio esquema, llamado FACWEB y al que le he concedido permisos para que vea las tablas del usuario anterior, lo he hecho con:

Código:

grant select on "FACTURACION"."FACTURAS" to "FACWEB"


Este usuario FACWEB tiene en su esquema una vista llamada VTFACTURAS que he creado con:

Código:

create view VTFACTURAS as
select * from facturacion.facturas


Funciona perfectamente, la vista accede a la tabla FACTURAS del otro usuario FACTURACION.

3. Por último tengo un tercer usuario FACWEBLECTURA que debe ser de consulta en el esquema FACWEB (esquema del usuario anterior), este usuario sólo debe tener permisos de consulta (SELECT) para la vista "FACTURAS_CONSULTA". Si intento hacer un:

Código:

grant select on "FACWEB"."VTFACTURAS" TO "FACWEBLECTURA"


Me da el siguiente error:

Failed to commit: ORA-01720: la opción Otorgar no existe para 'FACTURACION.FACTURAS'

¿A qué puede ser debido? lo que quiero es que el usuario FACWEBLECTURA pueda ejecutar la vista VTFACTURAS del esquema FACWEB.


Nota: ya he probado a darle permisos de SELECT al tercer usuario FACWEBLECTURA para la tabla FACTURAS del usuario FACTURACION. Que es la tabla que utiliza la vista, así tampoco funciona y da el mismo error ORA-01720.


Este error es debido a que estás intentando otorgar privilegios a un usuario sobre una vista que hace referencia a objetos de otro usuario. Efectivamente, como comentas, aunque al tercer usuario le des permisos de SELECT (o lo que quieras) sobre la tabla del primer usuario al que hace referencia la vista del segundo seguirá sin funcionar.

Para solucionar el error ORA-01720 Grant Option Does Not Exist (La opción otorgar no existe) debes otorgarle al segundo usuario FACWEB el privilegio de acceso a la tabla FACTURAS del primer usuario FACTURACION con la opción WITH GRANT OPTION, sería algo así:

Código:

grant select on "FACTURACION"."FACTURAS" to "FACWEB" with grant option;


La opción WITH GRANT OPTION proporciona al usuario FACWEB (segundo usuario) la posibilidad de dar a otros usuarios cualquier privilegio (siempre y cuando él lo tenga). Por ejemplo, en lo que nos comentas, el usuario FACWEB podrá otorgar el privilegio de SELECT al usuario FACWEBLECTURA (tercer usuario) a la tabla FACTURAS del usuario FACTURACION a través de la vista VTFACTURAS del usuario FACWEB.
MensajePublicado:
Jue Sep 27, 2012 5:22 am
Top of PageVer perfil de usuario
varios
Magnífico usuario


Registrado: Oct 10, 2006
Mensajes: 2092

Asunto: [RESUELTO]: Error ORA-01720: la opción Otorgar no existe Responder citando



Anuncios



alonsojpd escribió:
Este error es debido a que estás intentando otorgar privilegios a un usuario sobre una vista que hace referencia a objetos de otro usuario. Efectivamente, como comentas, aunque al tercer usuario le des permisos de SELECT (o lo que quieras) sobre la tabla del primer usuario al que hace referencia la vista del segundo seguirá sin funcionar.

Para solucionar el error ORA-01720 Grant Option Does Not Exist (La opción otorgar no existe) debes otorgarle al segundo usuario FACWEB el privilegio de acceso a la tabla FACTURAS del primer usuario FACTURACION con la opción WITH GRANT OPTION, sería algo así:

Código:

grant select on "FACTURACION"."FACTURAS" to "FACWEB" with grant option;


La opción WITH GRANT OPTION proporciona al usuario FACWEB (segundo usuario) la posibilidad de dar a otros usuarios cualquier privilegio (siempre y cuando él lo tenga). Por ejemplo, en lo que nos comentas, el usuario FACWEB podrá otorgar el privilegio de SELECT al usuario FACWEBLECTURA (tercer usuario) a la tabla FACTURAS del usuario FACTURACION a través de la vista VTFACTURAS del usuario FACWEB.


Muchísimas gracias, he usado el WITH GRANT OPTION y ya se ha resuelto el ORA-01720, ahora me funciona perfectamente.

Gracias!!!!
MensajePublicado:
Jue Sep 27, 2012 5:23 am
Top of PageVer perfil de usuario
Mostrar mensajes de anteriores:   
Todas las horas son GMT - 1 Horas
Publicar nuevo tema Responder al tema
Foros de discusión » Oracle Database, motor de base de datos profesional  

Cambiar a:  
Key
  Puede publicar nuevos temas en este foro
No puede responder a temas en este foro
No puede editar sus mensajes en este foro
No puede borrar sus mensajes en este foro
No puede votar en encuestas en este foro
Este sitio web NO CONTIENE malware, todos los programas con código fuente aquí. Autor: Alonso Javier Pérez Díaz Google+ Síguenos en Google+