Ein Benutzer mit dem Namen userB hat die Rolle Data Virtualization Engineer und erstellt eine auf virtuellen Tabellen basierende Ansicht. userB kann jedoch keinen Benutzerzugriff auf die erstellteAnsicht erteilen.
Symptome
Ein Benutzer, der den Namen userA hat, erstellt eine virtuelle Tabelle mit dem Namen VIRTUAL_A. Ein Benutzer mit dem Namen userB erstellt eine Ansicht mit dem Namen VIEW_B aus der Tabelle VIRTUAL_A. Die Berechtigung zum Zugriff auf die Tabelle VIRTUAL_A wird allen Data Virtualization über die Option Alle Datenvirtualisierungsbenutzer auf der Seite Zugriff verwalten erteilt.
Der Benutzer mit dem Namen userB versucht userC den Zugriff auf Ansicht VIEW_B zu erteilen, erhält jedoch einen Fehler ähnlich dem folgenden Beispiel.
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
Ursachen
Selbst wenn der Benutzer userB der Ersteller von VIEW_B ist,verfügt userB nicht über die erforderlichen Berechtigungen für die Tabelle VIRTUAL_A,um Benutzern Zugriff auf eine Ansicht zu erteilen, die von der Tabelle VIRTUAL_A abhängig ist.
Problemlösung
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION
Diese Fehlerumgehung ist nur erforderlich, wenn einem Benutzer (im vorliegenden Beispiel userB) über die Option Alle Datenvirtualisierungsbenutzer Zugriffsberechtigungen für eine virtuelle Tabelle (im vorliegenden Beispiel VIRTUAL_A) erteilt wurden.