Un utente chiamato userB ha il ruolo di Data Virtualization Engineer e crea una vista basata su tabelle virtuali. Tuttavia, userB non può concedere agli utenti l'accesso a questa vista.
Sintomi
Un utente denominato userA crea una tabella virtuale denominata VIRTUAL_A. Un utente denominato userB crea una vista denominata VIEW_B dalla tabella VIRTUAL_A. L'autorizzazione ad accedere alla tabella VIRTUAL_A è concessa a tutti gli utenti Data Virtualization utilizzando l'opzione Tutti gli utenti di Data Virtualization nella pagina Gestisci accesso.
L'utente denominato userB tenta di concedere l'accesso a userC nella visualizzazione VIEW_B, ma riceve un errore simile al seguente esempio.
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
Cause
Anche se userB è il creatore della vista VIEW_B, userB non dispone delle autorizzazioni richieste sulla tabella VIRTUAL_A per concedere l'accesso agli utenti su una vista dipendente da VIRTUAL_A.
Risoluzione del problema
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION
Questa soluzione temporanea è necessaria solo quando a un utente (userB nell'esempio) sono state concesse le autorizzazioni di accesso a una tabella virtuale (VIRTUAL_A nell'esempio) utilizzando l'opzione Tutti gli utenti di virtualizzazione dei dati.