Erro SQL0727N quando você consulta os resultados da visualização na Data Virtualization
Poderão ocorrer erros SQL0727N se você trabalhar em um ambiente que depende fortemente do controle de acesso que é baseado em grupos de usuários.
Sintomas
Uma mensagem de erro SQL0727N é retornada ao consultar uma visualização.
SQL0727N An error occurred during implicit system action type "3".
Information returned for the error includes SQLCODE "-142", SQLSTATE " "
and message tokens "". SQLSTATE=56098
Causas
Esse problema pode ocorrer quando o controle de acesso e a autorização com base em grupos são amplamente usados. Esse erro ocorrerá ao consultar as visualizações criadas em tabelas virtuais se certas outras condições também forem true. Especificamente, o acesso do criador da visualização à tabela subjacente é baseado na associação do grupo. Quando essas visualizações são acessadas, o acesso do usuário à visualização e o acesso do criador da visualização para a tabela subjacente na qual a visualização é baseada é verificado Uma vez que o acesso do criador da visualização à tabela subjacente depende de um provedor de identidade externo, a visualização é marcada como inválida enquanto aguarda a revalidação.
Para obter mais informações, consulte Restrições sobre o uso de privilégios de grupo ao executar instruções DDL ou pacotes de ligação.
Resolvendo o problema
- Se o erro for resultado de uma visualização que é marcada como inválida, um usuário com a função Administrador poderá resolver a condição que fez com que a visualização fosse marcada como inválida. Quando você trabalha com acesso baseado em grupos, geralmente um Administrador deve conceder privilégios SELECT para o usuário em vez do grupo ou além dele.
Você também pode conceder acesso público aos seus objetos para todas as funções ou para todos os usuários do site Data Virtualization e, em seguida, restringir o acesso usando regras de proteção de dados definidas em grupos. Para obter mais informações, consulte Governando dados virtuais com regras de proteção de dados em Data Virtualization.
- Após a tomada da ação corretiva, a execução de
SYSPROC.ADMIN_REVALIDATE_DB_OBJECTS()
nesse objeto revalida o objeto. Em seguida, o acesso subsequente ao objeto é bem-sucedido. Este procedimento requer um usuário Data Virtualization com função de administrador para executar as etapas necessárias. A execução do procedimento deve seguir esta sequência.
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');
Para obter mais informações, consulte os recursos a seguir.