Privilegios sobre índices basados en expresión
Se debe prestar especial atención a los privilegios cuando se utilizan índices basados en expresiones.
La autorización necesaria para crear un índice con una clave basada en expresión es la misma autorización necesaria para un índice regular. Para obtener detalles, consulte la sección Autorización
del tema CREATE INDEX.
Al crear un índice basado en expresiones, se generan dos objetos de base de datos más generados por el sistema y asociados con el índice. El primero es una visión estadística, y el segundo es un paquete. Estos objetos adicionales no se generan en el sistema cuando se crea un índice normal. Se otorga un conjunto restringido de privilegios sobre estos objetos adicionales.
Privilegios de vista estadística
Normalmente, el ID de autorización debe tener el privilegio SELECT o DATAACCESS en la tabla para crear una vista estadística. Se necesita el mismo privilegio para modificar la misma tabla para habilitar la optimización de consulta para la vista.
Para una vista estadística generada por el sistema que está asociada con un índice, estos privilegios no son necesarios. La vista de estadísticas se crea automáticamente si el ID de autorización tiene la autorización necesaria para crear un índice en la tabla. Sin embargo, el conjunto de privilegios que se otorga en la vista estadística que está asociada con un índice difiere de un conjunto de privilegios en una vista estadística normal. Es decir, no se otorgan privilegios a ningún ID de autorización en la vista estadística, incluido el propietario del índice. El propietario del índice también es el propietario de la vista estadística. Nadie, incluidos los ID de autorización con la autorización SECADM o DBADM, puede modificar privilegios en una vista estadística. Un intento de GRANT o REVOKE un privilegio en la vista de estadísticas da como resultado un error (SQLSTATE 42501).
La posibilidad de emitir RUNSTATS en la vista estadística o de actualizar manualmente sus estadísticas se rige por las autorizaciones y privilegios de la tabla subyacente.
La operación TRANSFER OWNERSHIP en la vista de estadísticas no está permitida y da como resultado SQL20344N, código de razón 7. Sin embargo, TRANSFER PROPIETARIO de un índice con una clave basada en expresión transfiere implícitamente la propiedad de la vista estadística asociada.
privilegios de paquete
No se necesitan privilegios adicionales para ejecutar ninguna sentencia o mandato en el paquete generado por el sistema. Cuando se crea un índice con una clave basada en expresión, cualquier usuario con privilegios en la tabla puede utilizar el paquete. Es decir, cualquier usuario con INSERT, UPDATE, DELETE o SELECT en la tabla tiene el privilegio EXECUTE en ese paquete. Esta autorización está implícita como parte de la sentencia o mandato que se ejecuta.
La operación TRANSFER OWNERSHIP en el paquete no está permitida y da como resultado SQL20344N, código de razón 5. Sin embargo, TRANSFER PROPIETARIO de un índice con una clave basada en expresión transfiere implícitamente la propiedad del paquete asociado.