WITH GRANT OPTION y WITH ADMIN OPTION

hola a todos.

Tengo una duda con respecto a las opciones  WITH GRANT OPTION  y WITH ADMIN OPTION, pues al dar privilegios a un usuario sobre un objeto table utilizo WITH GRANT OPTION, ejemplo:

GRANT  INSERT, UPDATE, DELETE ON DEPA1704 TO LUISREYES WITH GRANT OPTION;
 

pero cuando quiero dar privilegios para crear vistas y secuencias, oracle, no me permite utilizar with grant option, me forsa a  utilizar with admin option. Pero esto me causa problemas, pues cuando dentro de este usuario LUISREYES, creo otro usuario y a LUISREYES  revoco privilegio, al usuario que cree dentro de LUISREYES, aun me permite utilizar esos privilegios.

espero me puedan ayudar.

Antes de nada aclarar que aunque se parecen mucho, y ambas son para que el usuario al que se le han concedido privilegios pueda a su vez concederlos a otros usuarios, WITH GRANT OPTION y WITH ADMIN OPTION se utilizan en casos diferentes.

  • WITH GRANT OPTION se utiliza cuando se conceden privilegios para actuar sobre determinados objetos, especificados en la misma sentencia, como poder seleccionar datos de algunas tablas de otros usuarios, por ejemplo.
  • WITH ADMIN OPTION se utiliza cuando se conceden privilegios de sistema, que permiten realizar determinadas acciones relativas a un tipo de objeto, como poder crear secuencias, por ejemplo.

Otra diferencia es que cuando se revocan estos privilegios, en el caso de privilegios sobre objetos (opción GRANT) estos permisos se revocan en cascada, pero en el caso de los privilegios de sistema (opción ADMIN), sólo se revocan para el usuario especificado, los usuarios a los que este haya concedido a su vez privilegios continuarán 'disfrutándolos' a menos que se les revoquen directamente.

Y eso es justamente lo que te pasa, que el usuario que has creado dentro de LUISREYES conservará todos los privilegios que LUISREYES le haya otorgado aunque LUISREYES pierda los suyos. Si no quieres que los conserve tendrás que hacer otro REVOKE para él.