No Data Management (DMS), alterar dados sem mecanismos de proteção é arriscado: um comando DELETE em produção pode causar problemas graves, e um TRUNCATE acidental não permite rollback. O DMS resolve essa questão com regras de segurança que definem quais instruções SQL são executadas diretamente no SQLConsole, quais exigem aprovação via ticket e quais são totalmente bloqueadas. Este tópico aborda quatro cenários comuns no modo Security Collaboration para que você configure a política de governança adequada a cada ambiente.
Como funciona
Toda alteração de dados no DMS segue este ciclo de vida:
|
Estágio |
Descrição |
|
Escrever SQL |
Insira instruções SQL no SQLConsole ou anexe um arquivo |
|
Pré-verificação |
O DMS valida automaticamente o SQL em relação às regras de segurança antes da execução. |
|
Aprovação |
Caso as regras de segurança exijam um ticket, a alteração é encaminhada aos aprovadores designados (padrão: DBAs). |
|
Execute |
Execute a alteração imediatamente ou agende-a. Opcionalmente, agrupe instruções de linguagem de manipulação de dados (DML) em uma única transação. |
|
Backup e rollback |
O DMS gera instruções de backup para operações |
O comportamento em cada estágio é regido por regras de segurança — políticas configuráveis associadas a cada instância de banco de dados.
Pré-requisitos
Antes de começar, verifique se você possui:
Uma conta de administrador do DMS ou permissões para enviar tickets de alteração de dados
As instâncias de banco de dados
poc_prodepoc_devregistradas no DMS no modo Security CollaborationA tabela
data_modifycriada em ambos os bancos de dados
Criar a tabela data_modify
Nos quatro exemplos deste tópico, o recurso de schema design do DMS foi utilizado para criar a tabela data_modify. Também é possível executar esta instrução diretamente no SQLConsole, pois instruções DDL em bancos de dados de desenvolvimento não exigem tickets para execução.
CREATE TABLE `data_modify` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Primary key',
`name` varchar(256) NOT NULL COMMENT 'Name',
`phone` varchar(32) DEFAULT NULL COMMENT 'Phone number',
`sex` varchar(32) DEFAULT NULL COMMENT 'Gender',
`email` varchar(256) DEFAULT NULL COMMENT 'Email address',
`remarks` varchar(1024) DEFAULT NULL COMMENT 'Remarks',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Personal information';
Conjuntos de regras de segurança utilizados nos quatro cenários:
|
Instância de banco de dados |
Conjunto de regras de segurança |
|
|
Security Rules for POC Development Databases |
|
|
Security Rules for POC Production Databases |
Enviar um ticket para alteração regular de dados
Este cenário insere linhas na tabela data_modify em poc_prod por meio do envio de um ticket de alteração de dados.
Faça login no DMS console V5.0DMS console V5.0.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha All Features > Database Development > Data Change > Normal Data Modify.No modo normal, escolha Database Development > Data Change > Normal Data Modify na barra de navegação superior.
-
Preencha os parâmetros do ticket. Principais parâmetros:
Parâmetro
Descrição
SQL text
Instrução SQL a ser executada. Separe múltiplas instruções com ponto e vírgula (
;).Attachment
Faça upload de um arquivo
.txt,.zipou.sql. Tamanho máximo do arquivo: 15 MB. Clique em Submit. O DMS executa uma pré-verificação automaticamente. Se falhar, atualize o SQL conforme orientado e reenvie.
-
Após a aprovação da pré-verificação, clique em Submit for Approval e depois em OK na mensagem de confirmação.
Por padrão, DBAs aprovam tickets de alteração de dados. Para modificar o modelo de aprovação padrão, consulte a seção Change the default approval template no tópico SQL Correct.
-
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 Execution.
Se você definir Execution Method como After Audit Approved, Auto Execute durante a etapa de solicitação, esta etapa será ignorada automaticamente. Quando uma tarefa suspensa for retomada, a execução continuará de onde parou.
Parâmetro
Descrição
Execution strategy
Running immediately (padrão): executa assim que o ticket for confirmado. Schedule: executa no horário especificado.
Enable Submit as Single Transaction
Padrão: desativado. Ativado: se alguma instrução DML falhar, todas as instruções DML da transação sofrerão rollback (instruções DDL não permitem rollback). Desativado: cada instrução executa independentemente; a execução para em caso de falha, mas as instruções anteriores não sofrem rollback.
Enable Backup
Padrão: ativado. O DMS gera instruções de backup para comandos
UPDATEeDELETE. Consulte Suporte a backup para detalhes específicos de cada banco de dados. Opcional. Após a conclusão da execução, abra o SQLConsole para
poc_prode verifique os resultados.
Suporte a backup
O backup aplica-se apenas a instruções UPDATE e DELETE. Instruções INSERT e DDL não geram backup.
|
Tipo de banco de dados |
Instrução de backup gerada |
Observações |
|
MySQL, MariaDB |
|
Inclui ApsaraDB RDS for MySQL, PolarDB for MySQL, PolarDB-X e MySQL autogerenciado |
|
Todos os outros bancos de dados suportados |
|
— |
|
MongoDB, Redis |
Não suportado |
— |
Permitir execução direta de instruções DML no banco de dados de desenvolvimento
Por padrão, as regras de segurança do DMS exigem que todas as instruções DML passem por tickets. Em bancos de dados de desenvolvimento, isso desacelera a iteração. Configure as regras de segurança para permitir que desenvolvedores executem instruções DML diretamente no SQLConsole, sem precisar enviar um ticket a cada vez.
Etapa 1: Atualizar as regras de segurança para poc_dev
Faça login no DMS console V5.0DMS console V5.0 como administrador do DMS.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha All Features > Security and disaster recovery (DBS) > Security Rules.No modo normal, escolha Security and disaster recovery (DBS) > Security Rules na barra de navegação superior.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe estiver usando o console do DMS no modo normal, escolha na barra de navegação superior.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe estiver usando o console do DMS no modo normal, escolha na barra de navegação superior.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe estiver usando o console do DMS no modo normal, escolha na barra de navegação superior.
Na página Security Rules, localize as regras do banco de dados de desenvolvimento POC e clique em Edit na coluna Actions.
No painel de navegação à esquerda, clique em SQL Correct. Defina Checkpoints como SQL execution rules.
Ative All DML can execute directly in SQLConsole e desative All DML must execute by ticket.
Etapa 2: Verificar a alteração da regra
No canto superior esquerdo do console do DMS, pesquise pela instância
poc_dev.-
Na aba SQLConsole, execute as seguintes instruções INSERT:
INSERT INTO data_modify (name, phone, sex) VALUES ('dms_a', '19000001','Male'); INSERT INTO data_modify (name, phone, sex) VALUES ('dms_b', '19000002','Female'); INSERT INTO data_modify (name, phone, sex) VALUES ('dms_c', '19000003','Male'); Na caixa de diálogo Execution Confirmation, clique em Execute. Se Executed aparecer no resultado, a alteração da regra está funcionando corretamente.
Exigir aprovação de ticket para SQL de alto risco no banco de dados de produção
Algumas instruções SQL, como DELETE, apresentam risco significativo em produção. Configure regras de segurança para classificar DELETE como alto risco e direcioná-lo a um processo de aprovação dedicado.
Etapa 1: Criar um processo de aprovação
Faça login no DMS consoleDMS console como administrador do DMS.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha All Features > Security and disaster recovery (DBS) > Approval Processes.No modo normal, escolha Security and disaster recovery (DBS) > Approval Processes na barra de navegação superior.
Clique em Create Approval Template e configure os nós de aprovação. Adicione nós em ordem crescente: o nó 1 é o primeiro aprovador, o nó 2 é o segundo, e assim por diante.
Clique em Submit.
Etapa 2: Configurar uma regra de identificação de riscos
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha All Features > Security and disaster recovery (DBS) > Security Rules.No modo normal, escolha Security and disaster recovery (DBS) > Security Rules na barra de navegação superior.
Na página Security Rules, localize as regras do banco de dados de produção POC e clique em Edit na coluna Actions.
Clique em SQL Correct no painel de navegação à esquerda. Defina Checkpoints como Risk Identification Rules e clique em Create Rule.
-
Na caixa de diálogo Create Rule - SQL Correct, defina os seguintes parâmetros:
Parâmetro
Valor
Rule name
Production environments. The execution of DELETE statements is a high-risk operationRule DSL
Consulte o código DSL abaixo
if @fac.env_type in ['product','pre'] and @fac.sql_type in [ 'DELETE'] then @act.mark_risk 'high' 'High-risk SQL statements: DELETE in the production environments' end Clique em Submit.
Localize a regra Production environments. The execution of DELETE statements is a high-risk operation e clique em Enable na coluna Actions. Clique em OK na mensagem de confirmação. A regra entra em vigor imediatamente: todas as instruções
DELETEpassam a ser identificadas como operações de alto risco.
Etapa 3: Vincular o processo de aprovação à regra de aprovação de riscos
Defina Checkpoints como Risk Approval Rules. Localize a regra High risk approval process e clique em Edit na coluna Actions.
Na caixa de diálogo Change Rule - SQL Correct, substitua o ID do modelo no campo Rule DSL pelo ID do modelo de aprovação criado na Etapa 1. Clique em Submit.
Localize a regra High risk approval process e clique em Enable. Clique em OK para confirmar.
Etapa 4: Verificar a regra
No console do DMS, pesquise pela instância
poc_prod.-
Na aba SQLConsole, execute a seguinte instrução:
DELETE FROM data_modify WHERE id = 1; -
Se a área Histórico de Execução exibir uma mensagem de falha devido a regras de segurança, a regra está funcionando. Clique em Apply for Data Change para enviar um ticket e passar pelo processo de aprovação.
A execução de
DELETEem um banco de dados de produção é uma operação de alto risco. O ticket precisa ser aprovado pelo aprovador especificado no modelo de aprovação antes da execução.
Bloquear instruções TRUNCATE no banco de dados de produção
O comando TRUNCATE remove todas as linhas de uma tabela e não permite rollback. Para evitar perda acidental de dados em produção, configure uma regra de segurança que bloqueie instruções TRUNCATE tanto no SQLConsole quanto por meio de tickets.
Etapa 1: Modificar a regra de segurança para bloquear TRUNCATE
Faça login no DMS consoleDMS console como administrador do DMS.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha All Features > Security and disaster recovery (DBS) > Security Rules.No modo normal, escolha Security and disaster recovery (DBS) > Security Rules na barra de navegação superior.
Na página Security Rules, localize as regras do banco de dados de produção POC e clique em Edit na coluna Actions.
No painel de navegação à esquerda, clique em SQL Correct. Defina Checkpoints como SQL execution rules.
Localize a regra Allow TRUNCATE to be executed directly in the SQL console e clique em Edit na coluna Actions.
-
Renomeie a regra para
Forbid TRUNCATE statements. Substitua a linguagem específica de domínio (DSL) existente pelo código abaixo e clique em Submit:Esta DSL bloqueia
TRUNCATEtanto no SQLConsole quanto por meio de tickets. Para mais informações sobre a sintaxe DSL, consulte Sintaxe DSL para regras de segurança .if @fac.sql_type in ['TRUNCATE'] then @act.forbid_execute end Localize a regra TRUNCATE cannot be executed directly in the SQL console. It must be executed as a ticket. e clique em Enable na coluna Actions. Clique em OK para confirmar.
Etapa 2: Verificar a regra no SQLConsole
No console do DMS, pesquise pela instância
poc_prod.-
Na aba SQLConsole, execute a seguinte instrução:
TRUNCATE TABLE `data_modify`; A mensagem Execution Failed será exibida. A regra de segurança está bloqueando a instrução
TRUNCATE.
Etapa 3: Verificar a regra para envio de tickets
Envie um ticket de alteração de dados com a seguinte instrução SQL (consulte Enviar um ticket para alteração regular de dados):
TRUNCATE TABLE `data_modify`;
Após enviar o ticket, verifique os resultados da pré-verificação. Se a pré-verificação falhar, a regra também está bloqueando TRUNCATE pelo fluxo de trabalho de tickets.
Próximos passos
Sintaxe DSL para regras de segurança — escreva regras personalizadas para suas próprias políticas de governança de SQL
Gerenciar regras de segurança — configure, ative e desative regras em instâncias de banco de dados
Schema design — crie e gerencie schemas de tabelas sem enviar tickets de DDL