Este tópico descreve erros comuns em tickets de alteração de dados e as respectivas soluções.
Tipo de comando 'XXXX' proibido pelas regras de segurança
Mensagem de erro:
SQL type check failed. Based on security rule settings, direct execution of command type 'XXXX' is prohibited. To proceed, contact a DBA or administrator to adjust the rules. You can find the rules at: Security and Disaster Recovery -> Security Rules -> Edit -> SQL Correct -> SQL Execution Rules. No rule was found for this command type, so execution is denied by default.
Causa: A regra de segurança associada ao banco de dados no modo de colaboração segura não permite executar ou enviar o comando SQL. Por isso, o sistema bloqueia o comando.
Solução: Os comandos SQL bloqueados dividem-se em CONHECIDOS (reconhecidos pelo DMS) e DESCONHECIDOS (não reconhecidos pelo DMS). Escolha a solução adequada conforme o tipo de comando.
-
CONHECIDO
O DMS reconhece este comando, mas a regra de segurança atual nega sua execução por padrão. Entre em contato com o Administrador de Banco de Dados (DBA) ou administrador para ajustar a regra de segurança. Siga estas etapas para ajustar a regra:
-
Identifique o nome do conjunto de regras de segurança.
Acesse a página Data Change Ticket Details e clique em Operation Logs no canto superior direito. Na caixa de diálogo Operation Logs, verifique a coluna Action Details para encontrar o nome do conjunto de regras de segurança associado, por exemplo, POC Production Rules.
-
Ajuste a regra de segurança.
Faça login no DMS.
Na barra de menus superior, escolha .
Na aba security rules, localize o conjunto de regras desejado e clique em Edit na coluna Actions.
No painel de navegação à esquerda, clique em SQL Correct.
Selecione um Check Point com base na mensagem de erro. Por exemplo, no erro anterior, defina o Check Point como SQL Execution Rules.
-
Selecione a regra de segurança a ser ajustada e clique em Edit na coluna Actions.
NotaEscolha a regra de segurança conforme o tipo de linguagem SQL do comando indicado na mensagem de erro. Se o tipo de comando for CREATE_INDEX, por exemplo, selecione uma regra de segurança relacionada a DDL.
-
Adicione o tipo de SQL da mensagem de erro à DSL da regra de segurança correspondente.
Por exemplo, se o erro indicar que o tipo de comando
CREATE_INDEXestá proibido, adicione esse tipo de comando à regra relevante para envio de tickets DDL.Na caixa de diálogo Edit Rule, defina Checkpoints como SQL Execution Rules e localize a regra chamada DDL must be submitted through a ticket. Na DSL da regra, verifique se a lista
@fac.sql_typeinclui tipos DDL comoCREATE_INDEXe se a ação correspondente é@act.allow_submit, que permite executar esse tipo de SQL por meio de ticket. Em seguida, clique em Submit. Clique em Submit.
Após salvar as alterações, retorne à página de detalhes do ticket. Na seção de pré-verificação, clique em Retry. O DMS executará a verificação de tipo novamente.
-
-
DESCONHECIDO
Verifique se há erros na instrução SQL enviada. Caso existam, clique em Modify SQL na seção de pré-verificação. Após corrigir a instrução, clique em Retry para executar a verificação novamente.
Se a instrução SQL estiver correta, clique em View Details na seção de precheck para identificar a instrução marcada como UNKNOWN. Entre em contato com seu DBA ou administrador para adicionar a instrução a uma regra de segurança que permita sua execução no DMS. Depois que a regra for atualizada, clique em Retry. Para obter instruções sobre como ajustar a regra, consulte Ajustar a regra de segurança.
Falhas na verificação de linhas afetadas e sintaxe
Mensagem de erro:
Failed to check the number of affected rows. Syntax check failed. Error message: ERROR. pos 37, line 1, column 31, token WHERE
Causa: Durante a fase de pré-verificação de um ticket de alteração de dados, o DMS revalida a sintaxe da instrução SQL ao verificar o número de linhas examinadas.
Solução: Verifique a sintaxe da instrução SQL enviada.
Se a sintaxe do SQL estiver incorreta, modifique a instrução e clique em Retry na seção de pré-verificação. O DMS verificará novamente o número de linhas examinadas.
Se tiver certeza de que a sintaxe do SQL está correta, clique em Skip ao lado de Check the number of scanned rows na seção de pré-verificação para ignorar este erro.