Translation not up to date
Użytkownik o nazwie userB ma przypisaną rolę Watson Query Engineer i tworzy widok na podstawie tabel wirtualnych. Jednak userB nie może nadać użytkownikom dostępu do tego widoku.
Objawy
Użytkownik, który ma nazwę userA , tworzy tabelę wirtualną o nazwie VIRTUAL_A. Użytkownik o nazwie userB tworzy widok o nazwie VIEW_B z tabeli VIRTUAL_A. Uprawnienie do dostępu do tabeli VIRTUAL_A jest nadawane wszystkim użytkownikom programu Watson Query za pomocą opcji Wszyscy użytkownicy wirtualizacji danych na stronie Zarządzanie dostępem .
Użytkownik o nazwie userB próbuje nadać dostęp do userC w widoku VIEW_B, ale pobiera błąd podobny do poniższego przykładu.
Kod 500: SQLExecute: {42501} [IBM] [ sterownik CLI] [DB2/LINUXX8664] SQL0551N Wykonanie instrukcji nie powiodło się, ponieważ ID autoryzowanego użytkownika nie ma wymaganej autoryzacji lub uprawnienia do wykonania operacji. ID autoryzowanego użytkownika: "USERB". Operacja: "GRANT". Obiekt: "USERB.VIEW_B". SQLSTATE=42501
Przyczyny
Nawet jeśli userB jest twórcą widoku VIEW_B, userB nie ma wymaganych uprawnień dla tabeli VIRTUAL_A , aby nadać dostęp użytkownikom w widoku zależnym od VIRTUAL_A.
Rozwiązanie problemu
GRANT SELECT ON TABLE "schema".VIRTUAL_A TO "userB" WITH GRANT OPTION
To obejście jest konieczne tylko wtedy, gdy użytkownik (w tym przykładzieuserB ) ma nadane uprawnienia dostępu do tabeli wirtualnej (w przykładzieVIRTUAL_A ) za pomocą opcji Wszyscy użytkownicy wirtualizacji danych.