A otimização de revisão de SQL nas regras de segurança do DMS verifica se as instruções SQL no SQL Console e nos tickets de alteração de dados estão em conformidade. O sistema identifica problemas como falta de comentários em tabelas ou colunas obrigatórias e sugere melhorias, como alterações sem bloqueio. Este tópico demonstra como configurar uma regra de revisão de SQL e aplicá-la a um ticket de alteração de dados.
Contexto
O DMS inclui regras padrão de revisão de SQL, como A table must have comments, An INSERT statement cannot insert a null value into a NOT NULL column e Field names cannot be duplicated in an INSERT statement.
Para obter uma visão geral das verificações de conformidade de SQL disponíveis e das sugestões de otimização, consulte Configurar otimização de revisão de SQL.
Pré-requisitos
Antes de começar, crie a tabela migration_job com a seguinte instrução:
CREATE TABLE `migration_job` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
`gmt_create` datetime NOT NULL COMMENT 'Creation time',
`ref_id` bigint(20) unsigned NOT NULL COMMENT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='Test';
Se sua instância utilizar o modo de controle Security Collaboration, você poderá Criar um conjunto de regras de segurança e Aplicar um conjunto de regras de segurança à instância de banco de dados.
Etapa 1: Configurar regras de segurança
Os passos a seguir configuram regras de otimização de revisão de SQL para o modo Security Collaboration. Para os modos Flexible Management ou Stable Change, clique em SQL review optimization ao lado do modo de controle correspondente.
Faça login no DMS 5.0.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe você estiver usando o console do DMS no modo normal, escolha na barra de navegação superior.
Localize o conjunto de regras de segurança desejado e clique em Edit na coluna Actions.
No painel de navegação à esquerda da página Details, clique em SQL audit optimization recommendations.
-
Encontre a regra A table must have a primary key e clique em Edit na coluna Actions.
NotaClique em
ao lado de Tag, Behavioral action ou Status para filtrar as regras. A tag define o escopo da regra (DDL ou DML). O status pode ser ativado ou desativado. -
Na caixa de diálogo Rule content configuration, configure os parâmetros. Neste exemplo, defina a ação comportamental como Must Improve.
NotaAs regras padrão do sistema não incluem Must Improve. Para visualizar as opções disponíveis de behavioral action, consulte Ações comportamentais do sistema.
-
Clique em OK.
Em tarefas subsequentes, como desenvolvimento de dados, alteração de dados e revisão de SQL, o DMS verifica suas instruções SQL com base nas regras de segurança configuradas.
Etapa 2: Executar uma alteração de dados
Faça login no DMS 5.0.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo do console do DMS e escolha .NotaSe você estiver usando o console do DMS no modo normal, escolha na barra de navegação superior.
-
Na página Data Change Ticket Application, configure os parâmetros e clique em Submit Application.
NotaPara descrições dos parâmetros, consulte Normal Data Modify.
Selecione a instância de banco de dados associada ao conjunto de regras de segurança desejado.
-
O código SQL para a alteração de dados é o seguinte:
CREATE TABLE test1 ( id bigint COMMENT 'id', name varchar(60) COMMENT 'name' ) DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_bin ENGINE = INNODB; INSERT INTO migration_job(id, ref_id, gmt_create, gmt_create) VALUES(1, null, now(), now());
-
Após o envio do ticket, o sistema verifica as instruções SQL com base nas regras de segurança configuradas na Etapa 1.
A auditoria encontra um item Must Improve, dois problemas potenciais e um item Suggested Improvement.
Clique em View Details. Passe o mouse sobre os itens de erro da revisão de SQL para visualizar sugestões específicas.
-
Com base nas sugestões, clique em Modify SQL, otimize o SQL e, em seguida, clique em Confirm Change.
As modificações são as seguintes:
Na instrução
CREATE, adicione uma chave primária e um comentário à tabelatest1.Na instrução
INSERT, remova o campo duplicadogmt_createe insira um valor para o camporef_id.
O código SQL modificado é o seguinte:
CREATE TABLE test1 ( id bigint PRIMARY KEY COMMENT 'id', name varchar(60) COMMENT 'name' ) DEFAULT CHARSET = utf8mb4 COLLATE utf8mb4_bin ENGINE = INNODB COMMENT = 'Comment'; INSERT INTO migration_job(id, ref_id, gmt_create) VALUES(1, 2, now()); O sistema realiza a pré-verificação novamente.
-
Clique em Submit for Approval e aguarde a aprovação do ticket por um administrador.
Após a aprovação, o sistema gera uma tarefa de execução.
-
Depois que o ticket for aprovado, clique em Execute Change. Na caixa de diálogo Task Settings, configure os parâmetros de execução e clique em Confirm and Execute.
NotaAo criar um ticket, se o Execution Method estiver definido como Automatically execute after approval, o sistema pulará esta etapa automaticamente.
Se uma tarefa pausada for reiniciada, ela retomará a execução do ponto em que foi interrompida.
Parâmetro
Descrição
Execution strategy
Opções de estratégia de execução:
-
Execute Immediately: Inicia a tarefa quando você clica em Confirm and Execute.
-
Scheduled Execution: Executa a tarefa em um horário futuro especificado.
Enable global transaction
Define se todas as instruções devem ser agrupadas em uma transação global. Desativado por padrão.
-
Ativado: Todas as alterações são revertidas em caso de falha. Aplica-se apenas a instruções DML, não a DDL.
-
Desativado: As instruções são executadas sequencialmente. Em caso de falha, a tarefa é interrompida, mas as alterações anteriores não são revertidas.
Enable backup
Define se as linhas afetadas devem ter backup antes da execução. Ativado por padrão. Permite restauração rápida dos dados a partir do backup.
Nota
-
O backup é suportado apenas para instruções UPDATE e DELETE.
-
Não há suporte para backup no MongoDB e Redis.
-
Ativado: Antes de executar instruções
UPDATEouDELETE, o sistema gera um script de backup.-
Para bancos de dados MySQL e MariaDB, uma instrução de backup
REPLACE INTOé gerada.Nota
Os bancos de dados MySQL incluem RDS for MySQL, PolarDB for MySQL, PolarDB-X e outras fontes compatíveis com MySQL.
-
Para mecanismos de banco de dados diferentes de MySQL e MariaDB, uma instrução de backup
INSERTé gerada.
-
-
Desativado: Nenhum script de backup é gerado.
NotaO módulo SQL execution control nas security rules monitora a execução de tarefas SQL, incluindo tempo limite de bloqueio do banco de dados, carga do banco de dados e políticas de espera pós-execução. Para modificar os padrões, consulte Configurar controle de execução de SQL.
Após a execução bem-sucedida, clique em Details na coluna Actions para visualizar o status da execução, número de execuções, linhas afetadas, scripts e logs.
Você também pode se conectar ao SQL Console do banco de dados para verificar as alterações nos dados.
Próximos passos
Clique em Details para visualizar os logs de execução, incluindo instruções executadas, duração e detalhes de agendamento.