Un utilisateur nommé userB a le rôle d'ingénieur en Data Virtualization et crée une vue basée sur des tables virtuelles. Toutefois, l'utilisateur (userB) ne peut pas accorder aux utilisateurs l'accès à cette vue.
Symptômes
Un utilisateur nommé userA crée une table virtuelle nommée VIRTUAL_A. Un utilisateur nommé userB crée une vue nommée VIEW_B à partir de la table VIRTUAL_A. L'autorisation d'accéder à la table VIRTUAL_A est accordée à tous les utilisateurs de Data Virtualization en utilisant l'option Tous les utilisateurs de la virtualisation des données sur la page Gérer l'accès.
L'utilisateur nommé UserB tente d'accorder l'accès à UserC sur la vue VIEW_B, mais obtient une erreur similaire à l'exemple suivant.
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
Causes
Même si userB est le créateur de la vue VIEW_B, userB ne dispose pas des droits requis sur la table VIRTUAL_A pour accorder l'accès aux utilisateurs sur une vue dépendante de VIRTUAL_A.
Résolution du problème
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION
Cette solution n'est nécessaire que lorsqu'un utilisateur (userB dans l'exemple) a reçu des droits d'accès à une table virtuelle (VIRTUAL_A dans l'exemple) à l'aide de l'option Tous les utilisateurs de la virtualisation de données.