Este tópico descreve as configurações básicas, os pontos de verificação, os fatores, as ações e a biblioteca de modelos para design de schema. Além disso, explica como modifique o modelo de aprovação padrão e adicionar novas regras.
Informações básicas
Um ticket de design de schema geralmente envolve várias instâncias e segue um processo padrão: projetar o schema em um ambiente de teste e publicá-lo em produção. Por isso, as basic configurations, as design rules e as risk identification rules das regras de segurança para design de schema utilizam as regras associadas ao change baseline database (banco de dados no ambiente de teste).
As Design rules incluem Save and Edit - Check Table Header, Save and Edit - Check Field e Save and Edit - Check Index. Na página de edição de regras de segurança, esses três pontos de verificação aparecem como abas na seção Checkpoints.
As Risk identification rules incluem Control Risks of Creating Tables, Control Risks of Modifying Fields, Control Risks of Modifying Indexes e Control Risks of SQL Executions. Elas também aparecem como abas na seção Checkpoints.
O processo de aprovação, contudo, utiliza as regras de segurança do banco de dados em produção. Por exemplo, se um ticket de design de schema for publicado no banco de dados B, o sistema aplicará as regras de segurança da instância B.
Configurações básicas
O design de schema possui diversas configurações básicas:
-
Ativar publicação assimétrica: por padrão, as alterações de design de schema só podem ser publicadas simetricamente. Isso significa que alterações em uma tabela só podem ser publicadas em outra tabela com o mesmo nome em um banco de dados diferente. Ao ative a publicação assimétrica, você pode publicar alterações em qualquer tabela de destino, independentemente do nome.
AvisoEste recurso apresenta riscos significativos. Ative-o com cautela e apenas para cenários específicos.
-
Processo de desenvolvimento: configuração essencial nas regras de segurança de design de schema. Defina todas as etapas do ciclo de vida de um ticket de design de schema. A tabela a seguir descreve essas opções.
Parâmetro
Descrição
Step
Composto pelos nós Design e Publish.
-
Nó Design: é o nó padrão e não pode ser removido. Determina o ambiente onde a tarefa de alteração de schema é projetada.
-
Nó Publish: após a conclusão do design, o processo avança para a etapa de publicação para aplicar as alterações. Você pode adicionar vários nós de publicação.
Node Name
Nome personalizado para o nó, com até 10 caracteres.
Database Environment
Ambiente onde o nó é executado.
Execution Strategy
-
Immediately: a tarefa é executada imediatamente após a aprovação.
-
Timed: permite especifique um horário para publicar a tarefa. Se aprovada antes do horário definido, a execução ocorre nesse momento. Caso contrário, a tarefa é cancelada.
Can be Rolled Back
Defina se a tarefa de publicação pode ser revertida para o nó Design.
Can be Skipped
Indica se a etapa atual pode ser ignorada.
Anchor
Marca o ponto onde a edição do ticket é congelada. Após a conclusão bem-sucedida da etapa ancorada, o schema não pode mais ser editado e o status do ticket muda para Published.
Operation
Permite remover um nó Publish conforme necessário.
-
Configuração de tipo de campo: defina os tipos de dados permitidos para a opção Add Field.
Configuração de tipo de índice: especifique os tipos de dados permitidos em Add Index.
Modelo de criação de tabela: configure um modelo para criação de tabelas. Novas tabelas carregam esse modelo por padrão. O modelo é opcional e pode ser modifique durante a criação da tabela.
Proibir modificação dos tipos de dados dos campos originais: impede a alteração dos tipos de dados de campos existentes ao modifique uma tabela.
Proibir exclusão de campos originais: defina se a exclusão de campos existentes deve ser proibida durante a alteração de uma tabela. Como esta é uma operação de alto risco, recomenda-se ative esta opção.
Proibir renomeação de campos originais: determina se a renomeação de campos existentes deve ser bloqueada ao alterar uma tabela. Renomear campos existentes é uma operação de alto risco. Recomendamos ative esta opção.
Configuração de permissão de conjunto de caracteres da tabela: defina os conjuntos de caracteres permitidos para novas tabelas, como utf8 e utf8mb4.
Modelo de aprovação padrão para design de schema: se nenhuma regra de aprovação estiver configure para o ponto de verificação Approval Rule Check, os tickets de design de schema usarão este modelo de aprovação padrão. É possível alterar o processo de aprovação do modelo padrão usando o recurso Switch Approval Template. Para mais informações, consulte Modificar o modelo de aprovação padrão.
Avançar automaticamente o ticket para o estado fechado após a liberação: se ativado, após o nó que contém a anchor no processo de desenvolvimento executar uma alteração com sucesso, o sistema avança automaticamente o ticket para o estado fechado. A âncora deve estar no último nó de liberação do processo de desenvolvimento.
Pontos de verificação
O design de schema envolve dois processos:
-
Processo de salvar e editar: corresponde aos três pontos de verificação a seguir, que verificam sequencialmente as especificações para cabeçalhos de tabela, campos e índices.
Save and Edit - Check Table Header
Save and Edit - Check Field
Save and Edit - Check Index
-
Processo de execução de alterações: corresponde aos cinco pontos de verificação listados abaixo. Os quatro primeiros identificam riscos de alterações na Linguagem de Definição de Dados (DDL) e o último especifique o processo de aprovação para cada risco.
Control Risks of Creating Tables
Control Risks of Modifying Fields
Control Risks of Modifying Indexes
Control Risks of SQL Executions
Approval Rule Check
Ambos os processos possuem diversos modelos de regras de segurança integrados que podem ser usados diretamente ou personalizados. Para mais informações, consulte Adicionar uma nova regra.
Fatores e ações
-
Fator: variável de sistema integrada que fornece informações contextuais para verificações de regras de segurança, como o tipo de SQL ou o número de linhas afetadas. Todos os fatores começam com
@fac.seguido pelo nome do fator. Cada módulo oferece fatores diferentes para distintos pontos de verificação. A tabela a seguir descreve os fatores disponíveis para schema change.Fator
Descrição
@fac.table_kind
Tipo da tabela em edição. Valores válidos:
-
new: uma nova tabela.
-
old: uma tabela existente.
@fac.column_kind
Tipo de campo no schema da tabela. Valores válidos:
-
new: um novo campo.
-
old: um campo existente.
@fac.xxxx_old
Recupera o valor original de um campo ou índice para comparação.
@fac.column_is_primary
Indica se um campo faz parte da chave primária. Valores válidos:
-
true: o campo está na chave primária.
-
false: o campo não está na chave primária.
@fac.column_type_support_default
Indica se é possível defina um valor padrão para o tipo de dados do campo. Valores válidos:
-
true: suportado.
-
false: não suportado.
Por exemplo, o tipo de dados
CHARaceita valor padrão, mas o tipoTEXTnão.@fac.index_kind
Tipo de índice no schema da tabela. Valores válidos:
-
new: um novo índice.
-
old: um índice existente.
@fac.index_column_count
Número de campos no índice.
@fac.change_type
Tipo de alteração de campo ou índice identificado pelo banco de dados onde a instrução DDL é executada. Valores válidos:
-
add
-
modifique
-
exclua
@fac.altered_table_size
Tamanho da tabela modificada, em MB.
@fac.online_execute
Indica se a alteração pode ser executada online. Valores válidos:
-
true: ONLINE
-
false: NOT ONLINE
@fac.change_risk_level
Nível de risco da alteração. Valores válidos:
-
high: alto risco
-
medium: risco médio
-
low: baixo risco
@fac.env_type
Tipo de ambiente, correspondente ao identificador do ambiente, como
DEVouPRODUCT. Para mais informações sobre tipos de ambiente, consulte Alterar o tipo de ambiente de uma instância. -
-
Ação: comportamento executado pelo sistema após uma condição
ifser atendida, como proibir o envio de um ticket, selecione um fluxo de trabalho, permitir ou negar uma execução. Essas ações definem o objetivo principal de uma regra de segurança. Todas começam com@act.seguido pelo nome da ação. Cada módulo fornece ações diferentes para distintos pontos de verificação. A tabela a seguir descreve as ações disponíveis para schema design.Ações
Descrição
@act.block_submit
Bloqueia o envio e exibe uma mensagem de erro na etapa de salvamento da tabela. Uso:
@act.block_submit 'Reason for blocking'.@act.show_warning
Usado durante a etapa de salvamento da tabela. Exibe uma mensagem de aviso sem bloquear o envio. Uso:
@act.show_warning 'Warning content'.@act.mark_middle_risk
Usado durante a etapa de identificação de riscos. Marca a alteração como risco médio. Uso:
@act.mark_middle_risk 'Reason'.@act.mark_high_risk
Usado durante a etapa de identificação de riscos. Marca a alteração como alto risco. Uso:
@act.mark_high_risk 'Reason'.@act.forbid_submit_publish
Usado durante a etapa de configuração do processo de aprovação. Impede a execução da alteração. Uso:
@act.forbid_submit_publish 'Reason'.@act.do_not_approve
Especifique o ID de um modelo de aprovação. Para mais informações, consulte Definir o processo de aprovação.
@act.choose_approve_template
@act.choose_approve_template_with_reason
Biblioteca de modelos
O Security Rules oferece diversos modelos de regras que podem ser ativados diretamente ou modifique antes da ativação. A tabela a seguir lista os modelos para schema change.
|
Ponto de verificação |
Modelo |
|
Save and Edit - Check Table Header |
Proibir o uso de palavras-chave como nome de tabela para uma nova tabela |
|
Limitar o comprimento do nome de uma nova tabela |
|
|
Exigir comentários para uma nova tabela |
|
|
Exigir que o nome de uma nova tabela esteja em letras minúsculas |
|
|
Exigir uma chave primária (PK) para uma nova tabela |
|
|
Exigir uma chave única (PK/UK) para uma nova tabela |
|
|
Verificar o número de índices e alertar o usuário se a quantidade for excessiva |
|
|
Verificar se determinados campos existem em uma nova tabela |
|
|
Save and Edit - Check Field |
Proibir o uso de palavras-chave como nome de campo para um novo campo |
|
Exigir comentários para um novo campo |
|
|
Especifique distinção entre maiúsculas e minúsculas para o nome de um novo campo |
|
|
Exigir um valor padrão ao adicionar um campo não nulo a uma tabela existente |
|
|
Exigir um valor padrão ao alterar um campo existente de anulável para não anulável |
|
|
Exigir que um novo campo de chave primária seja do tipo inteiro |
|
|
Exigir que todos os campos em uma nova tabela sejam não anuláveis |
|
|
Limitar o comprimento de um novo campo do tipo CHAR |
|
|
Limitar o comprimento de um novo campo do tipo VARCHAR |
|
|
Save and Edit - Check Index |
Proibir o uso de palavras-chave como nome de índice para um novo índice |
|
Especifique distinção entre maiúsculas e minúsculas para o nome de um novo índice |
|
|
Limitar o formato do nome para um novo índice UNIQUE |
|
|
Limitar o formato do nome para um novo índice NORMAL |
|
|
Limitar o formato do nome para um novo índice FULLTEXT |
|
|
Limitar o formato do nome para um novo índice SPATIAL |
|
|
Limitar o número de novos campos de chave primária |
|
|
Limitar o número de novos campos de índice |
|
|
Control Risks of Creating Tables |
Controlar o número de shards para uma tabela lógica |
|
Controlar a chave primária de uma tabela |
|
|
Controlar o número total de índices em uma tabela |
|
|
Control Risks of Modifying Fields |
Controlar a exclusão de campos |
|
Controlar o tipo de dados de um novo campo |
|
|
Controlar a renomeação de campos |
|
|
Controlar a modificação do tipo de dados de um campo |
|
|
Control Risks of Modifying Indexes |
Controlar a exclusão de chave primária |
|
Controlar a exclusão de índice |
|
|
Controlar a alteração de uma chave primária para um índice |
|
|
Controlar alterações em colunas de uma chave primária |
|
|
Controlar a modificação de um índice comum |
|
|
Controlar o tipo de um novo índice |
|
|
Control Risks of SQL Executions |
Controlar riscos de instâncias principais |
|
Controlar o mecanismo de armazenamento de uma tabela |
|
|
Controlar riscos de bloqueio de tabela ou alterações de schema em tabelas grandes |
|
|
Approval Rule Check |
Proibir a aplicação de quaisquer alterações DDL a um banco de dados |
|
Proibir a aplicação de quaisquer alterações DDL a um banco de dados de produção |
|
|
Configure alterações DDL sem aprovação para um banco de dados de teste |
|
|
Defina regras de aprovação com base nos níveis de risco para o ambiente de produção |
Modifique o modelo de aprovação padrão
Faça login no DMS 5.0.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe você usa o console do DMS no modo normal, escolha na barra de navegação superior.
Na página Security Rules, localize o conjunto de regras desejado e clique em Edit na coluna Actions.
No painel de navegação à esquerda da página Details, clique em Schema Design.
Na aba Schema Design, clique em Basic Configurations.
Localize Default Approval Template for Schema Design e clique em Edit na coluna Actions.
Na caixa de diálogo Edit Configuration Item, clique em Switch Approval Template.
-
Encontre o modelo desejado pelo Template Name e clique em Select na coluna Actions.
NotaVocê também pode clique em Reset to No Approval para permitir que os tickets ignorem o processo de aprovação.
Clique em Submit.
Adicionar uma nova regra
Faça login no DMS 5.0.
-
Passe o ponteiro sobre o ícone
no canto superior esquerdo e escolha .NotaSe você usa o console do DMS no modo normal, escolha na barra de navegação superior.
Na página Security Rules, localize o conjunto de regras desejado e clique em Edit na coluna Actions.
No painel de navegação à esquerda da página Details, clique em Schema Design.
Na aba Schema Design, clique em Add Rule à direita de Actions.
-
Na caixa de diálogo Add Rule - Schema Design, configure os seguintes parâmetros.
Parâmetro
Descrição
Checkpoint (Obrigatório)
Selecione um ponto de verificação para a nova regra. O design de schema oferece múltiplos pontos de verificação. Para mais informações, consulte Pontos de verificação.
Template Library (Opcional)
A biblioteca de modelos fornece diversos modelos de regras. Após selecione um Checkpoint, você pode carregar um modelo de regra da Template Library. Para obter uma lista de modelos disponíveis, consulte Biblioteca de modelos.
Rule Name (Obrigatório)
Nome personalizado para a regra. Se você selecione um modelo de regra na Template Library, este campo será preenchido automaticamente.
Rule DSL (Obrigatório)
Insira a DSL da regra. Para mais informações sobre a sintaxe DSL, consulte a documentação. (Este campo é preenchido automaticamente se você selecione um modelo de regra na Template Library.)
Clique em Submit.
Por padrão, a nova regra está no estado Disabled. Localize a regra e clique em Enable na coluna Actions.
Na caixa de diálogo exibida, clique em OK.