Un usuario llamado userB tiene el rol Data Virtualization Engineer y crea una vista basada en tablas virtuales. Sin embargo, userB no puede otorgar acceso a esta vista a los usuarios.
Síntomas
Un usuario denominado userA crea una tabla virtual denominada VIRTUAL_A. Un usuario denominado userB crea una vista denominada VIEW_B desde la tabla VIRTUAL_A. El permiso de acceso a la tabla " VIRTUAL_A " se concede a todos los usuarios de " Data Virtualization " mediante la opción " Todos los usuarios de virtualización de datos " de la página " Gestionar el acceso ".
El usuario con el nombre userB intenta otorgar acceso a userC en la vista VIEW_B, pero obtiene un error similar al ejemplo siguiente.
Code 500: SQLExecute: {42501} [IBM][CLI Driver][DB2/LINUXX8664]
SQL0551N The statement failed because the authorization ID does not have the required authorization or privilege to perform the operation.
Authorization ID: "USERB". Operation: "GRANT". Object: "USERB.VIEW_B". SQLSTATE=42501
Causas
Aunque userB es el creador de la vista VIEW_B,userB no tiene los permisos necesarios sobre la tabla VIRTUAL_A paraotorgar acceso a los usuarios a una vista que depende de VIRTUAL_A.
Resolución del problema
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION
Esta solución temporal solo es necesaria cuando a un usuario (userB en el ejemplo) se han otorgado permisos de acceso a una tabla virtual (en este ejemplo, VIRTUAL_A) mediante la opción Todos los usuarios de Data Virtualization.