Translation not up to date
Błędy SQL0727N mogą wystąpić podczas pracy w środowisku, który jest silnie uzależniany od kontroli dostępu opartej na grupach użytkowników.
Objawy
Podczas wykonywania zapytania o widok zwracany jest komunikat o błędzie SQL0727N .
SQL0727N Wystąpił błąd podczas niejawnego działania systemu o typie "3". Informacje zwrócone dla błędu zawierają kod SQLCODE "-142", stan SQLSTATE "" i tokeny komunikatów "". SQLSTATE=56098
Przyczyny
Ten problem może wystąpić, gdy kontrola dostępu i autoryzacja oparta na grupach jest powszechnie używana. Ten błąd występuje podczas wykonywania zapytań o widoki utworzone w tabelach wirtualnych, jeśli pewne inne warunki również mają wartość true. W szczególności dostęp twórcy widoku do tabeli bazowej jest oparty na przynależności do grupy. Po uzyskaniu dostępu do tych widoków sprawdzana jest dostęp użytkownika do widoku oraz dostęp twórcy widoku do tabeli bazowej, na której oparty jest widok. Ponieważ dostęp twórcy widoku do tabeli bazowej jest uzależniany od zewnętrznego dostawcy tożsamości, widok jest oznaczony jako niepoprawny, podczas oczekiwania na ponowne sprawdzenie poprawności.
Więcej informacji na ten temat zawiera sekcja Ograniczenia dotyczące korzystania z uprawnień grupowych podczas wykonywania instrukcji DDL lub powiązania packages8.
Rozwiązanie problemu
- Jeśli błąd jest wynikiem oznaczenia, który jest oznaczony jako niepoprawny, użytkownik z rolą administratora może rozstrzygnąć warunek, który spowodował, że widok został oznaczony jako niepoprawny. W przypadku pracy z dostępem opartym na grupach, zazwyczaj administrator musi nadać uprawnienia SELECT użytkownikowi, a nie grupie lub oprócz niej.
Można również nadać publiczny dostęp do obiektów dla wszystkich ról lub wszystkich użytkowników programu Watson Query, a następnie ograniczyć dostęp za pomocą reguł ochrony danych, które są zdefiniowane w grupach. Więcej informacji na ten temat zawiera sekcja Zarządzanie danymi wirtualnymi za pomocą reguł ochrony danych w programie Watson Query.
- Po podjętej czynności naprawczej uruchomienie
SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()
w tym obiekcie ponownie sprawdza poprawność obiektu. Następnie dostęp do obiektu jest następnie kontynuowany. Ta procedura wymaga, aby użytkownik Watson Query pełniło rolę administratora w celu wykonania niezbędnych kroków. Wykonanie tej procedury musi być zgodne z tą sekwencją.
CALL SYSHADOOP.BIG_SQL_SERVICE_MODE('ON');
CALL SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS(object-type, object_schema, object_name);
CALL SYSHADOOP.BIG_SQL_SERVICE_MODE('OFF');
Więcej informacji na ten temat zawierają następujące zasoby.