Es posible que encuentre errores SQL0727N si trabaja en un entorno que depende en gran medida del control de acceso basado en grupos de usuarios.
Síntomas
Se devuelve un mensaje de error SQL0727N al consultar una vista.
SQL0727N An error occurred during implicit system action type "3".
Information returned for the error includes SQLCODE "-142", SQLSTATE " "
and message tokens "". SQLSTATE=56098
Causas
Este problema se puede producir cuando se utiliza ampliamente el control de acceso y la autorización basados en grupos. Este error se produce cuando consulta las vistas que se crean en las tablas virtuales si otras condiciones también son verdaderas. En concreto, el acceso del creador de la vista a la tabla subyacente se basa en la pertenencia a grupos. Cuando se accede a estas vistas, se comprueba el acceso del usuario a la vista y el acceso del creador de la vista a la tabla subyacente en la que se basa la vista. Puesto que el acceso del creador de la vista a la tabla subyacente se basa en un proveedor de identidad externo, la vista se marca como no válida mientras espera la revalidación.
Para obtener más información, consulte Restricciones del uso de privilegios de grupo al ejecutar sentencias DDL o enlazar paquetes.
Resolución del problema
- Si el error es resultado de una vista que está marcada como no válida, un usuario con el rol Administrador puede resolver la condición que ha hecho que la vista se haya marcado como no válida. Cuando se trabaja con el acceso basado en grupos, generalmente un administrador debe otorgar privilegios SELECT al usuario en lugar de o además del grupo.
También puede conceder acceso público a sus objetos para todas las funciones o todos los usuarios Data Virtualization y, a continuación, restringir el acceso mediante reglas de protección de datos definidas en grupos. Para obtener más información, consulte Gobernar los datos virtuales con reglas de protección de datos en Data Virtualization.
- Cuando se realiza la acción correctiva, al ejecutar
SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()
en ese objeto, se vuelve a validar el objeto. El acceso posterior al objeto se realiza correctamente. Este procedimiento requiere un usuario Data Virtualization con rol Admin para ejecutar los pasos necesarios. La ejecución del procedimiento debe seguir esta secuencia.
CALL SYSHADOOP.BIG_SQL_SERVICE_MODE('ON');
CALL SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS(object-type, object_schema, object_name);
CALL SYSHADOOP.BIG_SQL_SERVICE_MODE('OFF');
Para obtener más información, consulte los recursos siguientes.