Escolar Documentos
Profissional Documentos
Cultura Documentos
de Dados
Indaial – 2021
1a Edição
Elaboração:
Sagah Educação S.A
Impresso por:
Apresentação
Caro acadêmico! Estamos iniciando o estudo da disciplina Segurança
em Banco de Dados. Este livro é um dos instrumentos que contribuirá para
a sua aprendizagem. A abordagem do livro é sobre conceitos importantes
pertinentes às arquiteturas dos sistemas gerenciadores de bancos de dados,
utilizando-os para a garantia da segurança e integridade às informações
armazenadas.
Bons estudos!
NOTA
Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há
novidades em nosso material.
O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova
diagramação no texto, aproveitando ao máximo o espaço da página, o que também
contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo.
Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa
continuar seus estudos com um material de qualidade.
Acesse o QR Code, que levará ao AVA, e veja as novidades que preparamos para seu estudo.
REFERÊNCIAS....................................................................................................................................... 53
REFERÊNCIAS..................................................................................................................................... 117
REFERÊNCIAS..................................................................................................................................... 193
UNIDADE 1 —
SEGURANÇA, CONTROLE,
GERENCIAMENTO E ADMINISTRADOR
DE BASE DE DADOS
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:
1
PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos. No decorrer da unidade,
você encontrará autoatividades com o objetivo de reforçar o conteúdo
apresentado.
CHAMADA
2
TÓPICO 1 —
UNIDADE 1
1 INTRODUÇÃO
Os sistemas de gerenciamento de banco de dados (SGBDs) gerenciam
diferentes ações, que podem ser executadas em um banco de dados, como
inserção, manipulação ou exclusão de dados. No entanto, nem todos os usuários
do banco de dados necessitam – ou mesmo devem – ter acesso a todas essas
funcionalidades, tendo em vista a segurança do banco de dados. Por conta dessa
preocupação com a segurança dos dados, existem diferentes modelos e comandos
em linguagem de consulta estruturada (SQL, do inglês structured query language)
que podem ser utilizados para realizar o controle de acesso dos usuários.
DICAS
FONTE: O autor
4
TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO
DICAS
5
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
FONTE: O autor
DICAS
7
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
A fim de deixar claro todos os privilégios que podem ser concedidos aos
usuários de bancos de dados em SQL, apresentamos a tabela a seguir. Nela, estão
listados os privilégios e as suas respectivas descrições ou funções.
9
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
• GRANT CREATE TO U1
10
TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO
• WHERE Dnr = 4;
11
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
Nesse modelo, os privilégios são atribuídos a papéis no SGBD. Os papéis podem ser
criados com o comando CREATE ROLE e destruídos com o comando DROP ROLE.
Assim, os usuários podem receber, revogar e também repassar papéis a outros
usuários por meio dos comandos Grant e Revoke, apresentados anteriormente
(RAMAKRISHNAN; GEHRKE, 2011). Veja na Figura 1 uma representação gráfica
da concessão de privilégios de papéis por meio do comando GRANT.
DICAS
13
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
14
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:
15
• ALTER permite alterar tabelas, colunas e índices. DROP permite excluir
tabelas, visões, triggers ou banco de dados. UPDATE permite atualizar dados
das tabelas. DELETE, excluir dados da tabela. USAGE, conectar ao servidor.
INDEX, adicionar ou excluir índices. CREATE, criar tabelas, visões, triggers
ou banco de dados.
16
AUTOATIVIDADE
17
4 Assim como a concessão, a revogação de privilégios para usuários em um
banco de dados é importante para garantir a segurança das informações
armazenadas. Sendo assim, com relação à afirmação em que são revogados
os privilégios da relação:
18
TÓPICO 2 —
UNIDADE 1
1 INTRODUÇÃO
O usuário faz parte do grupo de pessoas que compõem a visão sociotécnica
dos sistemas empresariais, formados por hardware, dados, software e pessoas.
Segundo Sommerville (2007), os usuários são pessoas influenciadas pela forma
como a organização é gerenciada. Eles também são influenciados pelas suas
interações com outras pessoas dentro e fora da organização.
19
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
DICAS
20
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
DICAS
21
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
FONTE: O autor
22
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
FONTE: O autor
NTE
INTERESSA
24
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
FONTE: O autor
• Usuários administradores
• Usuários técnicos
• Usuários especialistas
• Usuários finais
26
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
DICAS
DICAS
28
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
5 USO DE SCRIPTS
Um script é um conjunto de instruções organizadas para a execução de
um procedimento, denominado no MySQL de processamento batch. Em síntese,
o script é um arquivo de texto com a extensão. SQL gerado a partir de softwares de
edição. No caso de bancos de dados, utiliza-se o script para escrever as instruções
a realizar, agilizando a execução e gerando uma documentação. O uso de scripts
favorece também a reutilização. Esse recurso pode ser utilizado, por exemplo,
em um conjunto de procedimentos que devem ser rodados várias vezes, como
rotinas bimestrais de verificação de existência de usuários inativos.
QUADRO 1 – INSTRUÇÕES
FONTE: O autor
29
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
• A partir da commandline
ou
• Em arquivo script
30
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
DICAS
Script shell (ou simplesmente script) é um arquivo, executado pelo nome, que
contém uma sequência de um ou mais comandos. Há vários programas shell: Bourne Shell,
Korn Shell e C Shell.
• Procedimentos adicionais
Para gerar o formato de saída interativo, deve-se usar mysql -t. Já para
apresentar na tela a saída das instruções que são executadas, deve-se usar mysql -v.
• Manutenção de usuários
31
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
E
IMPORTANT
Caso você tenha dúvidas na composição dos comandos SQL, sempre busque
as informações disponíveis no site oficial de documentação do SGBD que escolher.
• Criação de Usuários
IDENTIFIED BY ‘senha’
| IDENTIFIED BY PASSWORD ‘senhaHash’
| IDENTIFIED WITH pluginAutenticação
| IDENTIFIED WITH pluginAutenticação AS ‘senhaHash’
32
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
Veja:
SSL
| X509
| CIPHER 'cipher'
| ISSUER ‘emissor’
| SUBJECT ‘objeto’
MAX_QUERIES_PER_HOUR valor
| MAX_UPDATES_PER_HOUR valor
| MAX_CONNECTIONS_PER_HOUR valor
| MAX_USER_CONNECTIONS valor
ACCOUNT LOCK
| ACCOUNT UNLOCK
33
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
E
IMPORTANT
• Alteração de usuários
34
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
IDENTIFIED BY ‘senha’
[REPLACE ‘senhaAtual’]
[RETAIN CURRENT PASSWORD]
| DISCARD OLD PASSWORD
SSL
| X509
| CIPHER 'cipher'
| ISSUER ‘emissor’
| SUBJECT ‘objeto’
MAX_QUERIES_PER_HOUR valor
| MAX_UPDATES_PER_HOUR valor
| MAX_CONNECTIONS_PER_HOUR valor
| MAX_USER_CONNECTIONS valor
ACCOUNT LOCK
| ACCOUNT UNLOCK
35
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
• Exclusão de usuários
• Criação de listas
Uma lista representa um usuário com várias funções autorizadas para uso.
Depois que o usuário é criado, é possível inseri-lo em listas por meio da cláusula
DEFAULT ROLE. A definição das listas deve ser estabelecida a partir do tipo de
visibilidade que o conjunto de usuários pode ter dos objetos. A administração de
listas facilita a manutenção e padroniza o uso dos recursos, mas ela nem sempre
é possível.
• Alteração de listas
36
TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS
• Exclusão de listas
37
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:
38
• FORCE, IMMEDIATE, AUTOMATIC E EXPIRE IMMEDIATE não são
parâmetros do comando create user. Para expirar a senha no primeiro acesso
ao parâmetro é EXPIRE.
• Comandos SQL que dão acesso aos dados são instruções de consulta (SELECT),
alteração (UPDATE), inserção (INSERT) e remoção (DELETE). Não existe o
conceito de hierarquia entre grupos de usuários na administração de banco
de dados. Não existe favorecimento aos usuários que pertencem ao grupo. Ter
grupo facilita a gestão de privilégios. Privilégios não são restrições, mas sim
autorizações. Não se diz o que o usuário não pode fazer, e sim o que ele pode
fazer. Portanto, PRIVILÉGIOS são permissões que um grupo de usuários têm
para a manipulação do banco de dados.
• Comandos SQL que dão acesso aos dados são instruções de consulta (SELECT),
alteração (UPDATE), inserção (INSERT) e remoção (DELETE). Não existe o
conceito de hierarquia entre grupos de usuários na administração de banco
de dados. Não existe favorecimento aos usuários que pertencem ao grupo. Ter
grupo facilita a gestão de privilégios. Privilégios não são restrições, mas sim
autorizações. Não se diz o que o usuário não pode fazer, e sim o que se pode
fazer. Portanto, PRIVILÉGIOS são permissões que um grupo de usuários têm
para a manipulação do banco de dados.
39
O comando INSERT ROLE não se aplica para a gestão de papéis/grupos.
O comando INSERT é utilizado para inserir linhas nas tabelas. Portanto,
o comando usado para atribuir privilégios a um conjunto de usuários é o
GRANT ROLE.
40
AUTOATIVIDADE
a) ( ) Finais.
b) ( ) Programador.
c) ( ) Especialista.
d) ( ) Analista de sistemas.
41
42
TÓPICO 3 —
UNIDADE 1
1 INTRODUÇÃO
A administração dos bancos de dados é um item primordial para o bom
desempenho, a segurança e a confiabilidade dos dados armazenados. A tarefa de
administrar demanda conhecimento, planejamento e um cuidado bem específico
em relação à estrutura do banco de dados. Por isso, muitas empresas estão dando
mais cuidado e atenção a esse elemento, seja contratando um administrador de
banco de dados ou terceirizando essa função com uma consultoria em TI.
DICAS
FONTE: O autor
43
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
DICAS
FONTE: O autor
44
TÓPICO 3 — CONHECENDO OS DESAFIOS DA ADMINISTRAÇÃO DE BANCO DE DADOS
2 TECNOLOGIAS
Nos últimos anos, o surgimento de forças, como a TI híbrida, virtualização,
computação em nuvem, convergência continuada de infraestrutura e BYOD
(traga seu próprio dispositivo) ofereceram aos profissionais de tecnologia novas
formas de trabalhar, revolucionando o modelo tradicional até então praticado
na área. A expectativa é de que as pessoas que trabalham nessa área consigam
colocar em prática conceitos e tendências tecnológicas, como bancos de dados
embutidos, Internet das Coisas (IoT) e Cloud Computing, mas sem deixar de lado
as habilidades de gerenciar tecnologias e infraestruturas tradicionais.
• Ao considerar quais bancos de dados são migrados para a nuvem, levar em conta
o processo de transferência de dados e a latência, além de como manter os bancos
de dados em sincronia, se necessário, especialmente se for preciso integrar os
aplicativos com outros que não residam na mesma implantação na nuvem.
• Um banco de dados com desempenho insatisfatório nas instalações também
apresentará um mau desempenho na nuvem. Mudar o problema de lugar não
é solução. O escalonamento na nuvem para compensar um mau desempenho
pode sair caro rapidamente, além de ser a abordagem incorreta.
• Entender os serviços e as capacidades do provedor de serviços, avaliar a
arquitetura recomendada e estar atento à manutenção programada.
• Refletir, planejar e gerenciar o backup e recuperação para garantir que dados
importantes não sejam perdidos caso ocorra uma falha ou interrupção no
fornecedor.
• Mantenha-se à frente da segurança, percebendo que a criptografia é apenas
a ponta do iceberg – considere quem monitorará o acesso ao banco de dados
impedindo o acesso mal-intencionado ou não autorizado, prepare-se para
o pior e tenha um plano de ação documentado para o caso de violação da
segurança ou perda de dados.
45
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
Nas quatro primeiras posições desse ranking, são vistos dois modelos de
SGBDs de licença proprietária (Oracle e SQL Server) e dois modelos de licença
Open Source (Livre, de código aberto, MySQL e MondoDB). O MondoDB vem em
forte crescimento no mercado mundial, ocupando já a quarta posição superando
o também bastante utilizado PostreSQL. Um dos motivos dessa ascensão é o fato
do MongoDB não trabalhar com o modo Relacional de tabelas como os outros
SGBDs, mas com um sistema de Índices também conhecido como NO-SQL.
3 PERFORMANCE
A performance do banco de dados é um fator de grandes desafios para o
BDA. O conjunto que envolve Hardware+Sistema+SGBD deve estar equacionado
para uma performance satisfatória. No entanto, conforme o crescimento e a demanda
das informações armazenadas, essa tarefa torna-se cadê vez mais complexa. Muitas
vezes a escolha inicial de infraestrutura pode não ser mais suficiente, não atendendo
às demandas necessárias, necessitando de migração ou atualização, ou a sua
manutenção e configuração não estão ocorrendo de forma organizada e coerente
com as necessidades da plataforma, causando transtornos e inconsistências.
46
TÓPICO 3 — CONHECENDO OS DESAFIOS DA ADMINISTRAÇÃO DE BANCO DE DADOS
FONTE: O autor
47
UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS
4 SEGURANÇA
A preocupação com a criação e manutenção de ambientes seguros se tornou
a ocupação principal de administradores de redes, de sistemas operacionais e
de bancos de dados. Pesquisas mostram que a maioria dos ataques, roubos de
informações e acessos não autorizados são feitos por pessoas que pertencentes
à organização alvo. De modo geral, os mecanismos de segurança referem-se às
regras impostas pelo subsistema de segurança do SGBD, que verifica todas as
solicitações de acesso, comparando-as com as restrições de segurança armazenadas
no catálogo do sistema. Entretanto existem brechas no sistema e ameaças externas
que podem resultar em um servidor de banco de dados comprometido ou na
possibilidade de destruição ou no roubo de dados confidenciais.
São tipos de controles que podem ser implementados para garantir maior
segurança nos bancos de dados:
• Controle de Acesso
• Controle de Inferência
48
TÓPICO 3 — CONHECENDO OS DESAFIOS DA ADMINISTRAÇÃO DE BANCO DE DADOS
• Controle de Fluxo
• Criptografia de Dados
Você pode ler aqui um pouco mais sobre criptografia. É uma medida
de controle final, utilizada para proteger dados sigilosos que são transmitidos
por meio de algum tipo de rede de comunicação. Ela também pode ser usada
para oferecer proteção adicional para que partes confidenciais de um banco de
dados não sejam acessadas por usuários não autorizados. Para isso, os dados
são codificados através da utilização de algum algoritmo de codificação. Assim,
um usuário não autorizado terá dificuldade para decifrá-los, mas os usuários
autorizados receberão chaves para decifrar esses dados. A criptografia permite
o disfarce de mensagem, para que, mesmo com o desvio da transmissão, a
mensagem não seja revelada.
• Privilégios
49
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:
50
• Modelagem do banco e backup do banco de dados são atribuições do DBA.
• A tag DROP não faz parte do comando GRANT. A tag CREATE não faz parte
do comando GRANT.
CHAMADA
51
AUTOATIVIDADE
a) ( ) Checar a tabela.
b) ( ) Criar índices das views.
c) ( ) Excluir dados não utilizados.
d) ( ) Criar uma outra tabela para relacionar buscas.
a) ( ) IoT.
b) ( ) Cloud.
c) ( ) Backup.
d) ( ) Restore.
4 Entre os bancos de dados existentes, qual é o que se destaca pelo maior uso
e abrangência a novas tecnologias?
a) ( ) Oracle.
b) ( ) MySQL.
c) ( ) MongoDB.
d) ( ) _ Amazon Dynamo DB.
5 Qual é o comando que pode ser utilizado para monitorar o banco de dados
MySQL?
a) ( ) Mytop.
b) ( ) Mysqltop.
c) ( ) Mysqlcheck.
d) ( ) Mysqldump.
52
REFERÊNCIAS
ABNT. ABNT NBR ISO/IEC 27002: tecnologia da informação: técnicas de
segurança: código de prática para a gestão da segurança da informação. Rio de
Janeiro: ABNT, 2005.
53
MYSQL. DROP USER Syntax. 2019b. Disponível em: https://dev.mysql.com/
doc/refman/8.0/ en/drop-user.html. Acesso em: 12 abr. 2019.
54
UNIDADE 2 —
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:
55
PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos. No decorrer da unidade,
você encontrará autoatividades com o objetivo de reforçar o conteúdo
apresentado.
CHAMADA
56
TÓPICO 1 —
UNIDADE 2
1 INTRODUÇÃO
Atualmente, com a automatização dos processos organizacionais,
armazenar dados sobre negócios em meios digitais passou a fazer parte da rotina
de qualquer empresa. É comum encontrarmos empresas que possuem grandes
volumes de informações armazenadas em bancos de dados.
DICAS
57
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
FONTE: O autor
Uma cópia de segurança dos bancos de dados MySQL pode ser executada
a qualquer momento e de forma manual pelo DBA. No entanto, na maioria das
vezes é necessário que essas cópias sejam executadas automaticamente, por meio
de scripts.
Um script pode ser entendido como uma sequência de instruções que são
executadas passo a passo por meio de um programa em lote, nomeado com a
extensão .bat. – um programa em lote, também conhecido como batch, que possui
a capacidade de realizar chamadas de arquivos executáveis, bem como capturar
dados do sistema operacional – como data e hora.
59
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
E
IMPORTANT
60
TÓPICO 1 — BACKUP E RECUPERAÇÃO DE BANCO DE DADOS
• Os agendamentos realizados:
o os dias e os horários em que os backups serão realizados;
o os locais/mídias em que os backups serão armazenados.
• As responsabilidades na equipe:
o como os backups serão executados (rotinas automáticas ou manuais) e
quem os executará;
o quem serão os responsáveis pelo monitoramento da execução dos backups;
o quem está autorizado a solicitar a restauração de um banco de dados;
o quem pode executar a restauração de um banco de dados.
61
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
NOTA
62
TÓPICO 1 — BACKUP E RECUPERAÇÃO DE BANCO DE DADOS
E
IMPORTANT
63
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
64
TÓPICO 1 — BACKUP E RECUPERAÇÃO DE BANCO DE DADOS
DICAS
mysql -uroot -p
65
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
FONTE: O autor
E
IMPORTANT
FONTE: O autor
66
TÓPICO 1 — BACKUP E RECUPERAÇÃO DE BANCO DE DADOS
FONTE: O autor
67
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
E
IMPORTANT
FONTE: O autor
68
TÓPICO 1 — BACKUP E RECUPERAÇÃO DE BANCO DE DADOS
FONTE: O autor
FONTE: O autor
Assim que o serviço do MySQL for parado, o arquivo de log binário será
fechado. Um novo arquivo será aberto quando o MySQL for iniciado novamente.
A partir disso, o backup dos arquivos de log binário pode ser realizado da mesma
maneira que são realizados os backups completos. A única diferença está na
localização e no nome dos arquivos.
69
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:
• Os backups lógicos e a cópia completa não fazem uso dos logs de arquivos
binários.
70
AUTOATIVIDADE
a) ( ) Dados duplicados.
b) ( ) Dados inconsistentes.
c) ( ) Dados corrompidos.
d) ( ) Dados inacessíveis.
a) ( ) Backup on-line.
b) ( ) Backup ativo.
c) ( ) Backup full time.
d) ( ) Backup faster.
71
5 O banco de dados MySQL possui uma ferramenta bastante conhecida para
realizar backups lógicos. Essa ferramenta é denominada mysqldump e tem
diversas opções de parâmetros. Acerca do que representa a execução de um
backup apenas para a tabela usuário de um banco de dados denominado
db_pedido, em que a saída deve ser um arquivo nomeado como “bkp_
usuario.sql”, assinale a alternativa CORRETA:
72
TÓPICO 2 —
UNIDADE 2
1 INTRODUÇÃO
Um sistema de banco de dados pode falhar por diversos fatores, tornando
indisponíveis as aplicações essenciais para uma organização. Por isso, a alta
disponibilidade (HA) é uma característica essencial pela qual, atualmente, as
organizações prezam. Para isso, são adotadas diferentes configurações para banco
de dados e recursos, com o intuito de fornecer proteção ao sistema contra falhas,
garantindo melhor desempenho e evitando que interrupções sejam geradas,
diminuindo o tempo de indisponibilidade causada ao banco de dados devido a
esses fatores.
73
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
74
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
FONTE: O autor
75
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
76
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
77
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
78
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
79
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
FONTE: O autor
80
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
NOTA
81
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
NOTA
Outros riscos são os problemas na base de dados, que são causados por
erros humanos. Entre eles, estão a execução de algum comando prejudicial aos
dados, a alteração de tabelas e registros indevidos, que geram erros nas consultas
e no funcionamento do banco durante a sua operação, bem como falhas no sistema
de armazenamento. Enfim, como você viu, muitos riscos e ameaças podem
derrubar um sistema de banco de dados, causando um grande desastre quando
recursos de redundância e alta disponibilidade não estão aplicados ao ambiente.
82
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
FONTE: O autor
Nesse cenário, todos os nós garantem que dados e cache sejam atualizados
ao mesmo tempo. Veja o funcionamento do cluster de banco de dados com
armazenamento compartilhado ilustrado na Figura 11.
84
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
caso a falha ocorra antes que tudo seja salvo. Outra desvantagem é que
a falha de qualquer nó gera interrupção da sessão do usuário até que
a recuperação do cluster ocorra. Nesse caso, é necessário refazer o que
estava sendo inserido nesse banco no momento da interrupção. Além
disso, a forma como a gravação ocorre, paralelamente entre os nós, pode
danificar o código, tornando o banco não funcional.
86
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
87
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
• SQL Server
88
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
• Grupos de disponibilidade
89
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
• MySQL
90
TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS
• IBM DB2
O IBM DB2 foi criado pela IBM para armazenar, gerenciar, analisar e
recuperar sistemas de banco de dados relacionais. De acordo com a Tutorialspoint
(2020), inicialmente foi projetado para o uso na sua plataforma específica, mas
posteriormente estendeu a sua utilização, possibilitando que fosse implementada
em qualquer sistema operacional, como Windows, Linux e plataformas Unix.
O funcionamento do IBM DB2 permite a sua integração com o software de
gerenciamento do cluster e se resume em dois modos de operação, que dependem
diretamente do sistema operacional que está sendo executado:
Por fim, o IBM DB2 garante alta disponibilidade para ambientes que
enfrentem falhas parciais ou completas, enviando logs de forma contínua para o
banco de dados. Este funciona como primário, e o servidor principal é responsável
pelo armazenamento dos dados, replicando-os para os bancos, que funcionam
como standby quando o banco primário se torna indisponível. Dessa forma,
pode-se garantir que os demais bancos em espera possam assumir o papel do
banco principal automaticamente, quando for necessário, fornecendo capacidade
de failover de forma rápida e sem impactar o desempenho da operação. Além
disso, a ferramenta é de configuração simples, apresentando funcionalidades
de monitoramento e garantindo que atualizações sejam realizadas a qualquer
momento, sem atingir qualquer tempo de inatividade para aplicativos em
execução que estejam consultando ou adicionando conteúdo ao banco.
• Oracle Sun
91
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
• NoSQL
NoSQL é o termo genérico que se refere aos bancos de dados não relacionais,
ou seja, aqueles que, diferentemente dos outros bancos de dados citados, não
mantêm relação entre os dados que armazenam. Com uma arquitetura distribuída
e tolerante a falhas, eles mantêm os dados em vários servidores, com o intuito de
manter a sua redundância, podendo ser expandido a qualquer momento, com a
adição de outros servidores, e capaz de gerenciar diversos servidores.
92
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:
• Um cluster serve para que, mesmo com qualquer falha operacional ocorrendo,
o banco de dados continue disponibilizando os dados para as aplicações,
evitando que pontos únicos de falhas existam nesse sistema, com a aplicação
de redundância.
93
• O cluster primário-secundário (master-slave) é mais utilizado em aplicações
voltadas para consulta de dados, em que o nó mestre centraliza as informações
e os demais realizam as consultas, e os dados são sincronizados somente
quando necessário, mantendo o modo assíncrono na maior parte do tempo.
• O comando BEGIN inicia uma transação. Logo após ele, deve vir o comando
de execução de uma ou mais operações e, por fim, deve vir o comando
COMMIT, que sinaliza a confirmação da operação para o SGBD.
94
AUTOATIVIDADE
95
3 Os riscos e ameaças à disponibilidade de um banco de dados podem ser de
origens diversas. Podem ser causados por falhas humanas, operacionais,
físicas ou simplesmente por falta de recursos adequados, gerando de
pequenos conflitos no sistema até grandes prejuízos ao negócio. Sabendo
disso, classifique V para as sentenças verdadeiras e F para as falsas:
96
V- NoSQL são bancos não relacionais como todos os outros citados nas
alternativas anteriores, mas apresentam arquitetura distribuída, sendo
mais tolerantes a falhas.
97
98
TÓPICO 3 —
UNIDADE 2
1 INTRODUÇÃO
A Structured Query Language (SQL) é uma linguagem de consulta
estruturada, pela qual é possível realizar diferentes tipos e formas de consultas,
utilizadas para recuperar informações em um banco de dados. Também pode ser
aplicada para a definição, a manipulação e as atualizações de dados.
99
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
FONTE: O autor
100
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
101
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
102
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
FONTE: O autor
103
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
104
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
Em vez de:
105
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
Exemplo de REVOKE:
106
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
• as que são inerentes ao modelo de dados e, por esse motivo, são chamadas de
restrições inerentes baseadas no modelo ou restrições implícitas;
• as que podem ser definidas diretamente nos esquemas do modelo de dados,
chamadas de restrições baseadas em esquema ou restrições explícitas;
• as que não podem ser definidas diretamente nos esquemas do modelo de
dados e, por isso, são impostas pelos programas de aplicação, sendo chamadas
de restrições baseadas na aplicação ou restrições semânticas.
A restrição de que uma relação não pode ter linhas duplicadas é uma restrição
implícita, por exemplo. Já as restrições que podem ser definidas no esquema do
modelo relacional na DDL são explícitas. Por sua vez, as restrições semânticas são
mais gerais, relacionadas ao significado e ao comportamento dos atributos. Essas
restrições dificilmente são expressas e impostas no modelo de dados; geralmente
são verificadas nos programas de aplicação que executam as atualizações no banco
de dados. As restrições explícitas podem ser restrições de domínio, de chave, sobre
valores nulos, de integridade e de integridade referencial (ELMASRI; NAVATHE,
2011). Veja a seguir exemplos de restrições na criação de tabelas.
108
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
NOTA
Veja a seguir a criação da tabela Estudantes, em que o id_aluno deve ser único
e não nulo, o nome e o login também devem ser não nulos, e a idade, além de ser não nula,
é checada para confirmar se é maior do que 10 anos.
A criação da tabela Estudantes também pode ser como apresentada a seguir, visto que
definir a chave primária em id_aluno é o mesmo que dizer que o seu valor deve ser único
e não pode ser nulo.
109
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
NTE
INTERESSA
110
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
3 SQL INJECTION
A expressão SQL Injection, ou simplesmente injeção de SQL, em livre
tradução, é um tipo de ataque em que o invasor insere instruções SQL em campos
de formulário que realizam operações em bancos de dados, por exemplo, consultas
em telas de login ou inserção em formulários de fale conosco de sistemas (PHP,
2001-2018f).
1 SELECT nome
2 FROM usuario
3 WHERE email = '$email'
4 AND senha = '$email'
111
UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL
FONTE: O autor
FONTE: O autor
1 SELECT nome
2 FROM usuario
3 WHERE email = '' or '1' = '1'
4 AND senha = '' or '1' = '1'
112
TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION
1 SELECT nome
2 FROM usuario
3 WHERE email = 'administrador@site.com.br'
4 AND senha = '' or '1' = '1'
FONTE: O autor
NOTA
CHAMADA
113
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:
• Para criar uma tabela utilizando o CREATE TABLE, esta precisa ter um nome
definido, bem como especificados seus atributos e possíveis restrições.
• Os comandos DCL mais comuns nos SGBD são: GRANT, que autoriza
privilégios aos usuários para executarem comandos, consultas e alterações
nos dados armazenados, como a criação de tabelas (CREATE TABLE); e
REVOKE, que basicamente revoga os privilégios concedidos ao usuário pelo
comando anterior.
114
AUTOATIVIDADE
GRANT create_table
TO usuario_pedro;
115
Para que foi criada a instrução exibida, que utilizou o comando GRANT?
a) ( ) Autorizar o privilégio de criação de tabelas para ‘usuario_pedro’.
b) ( ) Revogar o privilégio de criação de domínios para ‘usuario_pedro’.
c) ( ) Autorizar o privilégio de criação de consultas para ‘usuario_pedro’.
d) ( ) Revogar o privilégio de criação de visões para ‘usuario_pedro’.
116
REFERÊNCIAS
ALVES, G. F. O. 6 motivos para usar bancos de dados NOSQL. 2016. Disponível
em: https://dicasdeprogramacao.com.br/6-motivos-para-usar-bancos-de-dados-
nosql/. Acesso em: 4 jun. 2020.
LONEY, K.; BRYLA, B. Oracle 10g: o manual do DBA. Rio de Janeiro: Elsevier,
2005.
PHP. base64_encode. [S.l.]: The PHP Group, 2001-2018a. Disponível em: http://
br.php.net/base64_encode. Acesso em: 21 jan. 2018.
PHP. crypt. [S.l.]: The PHP Group, 2001-2018b. Disponível em: https://secure.
php.net/manual/pt_BR/function.crypt.php. Acesso em: 21 jan. 2018.
PHP. Filtragem de dados. [S.l.]: The PHP Group, 2001-2018c. Disponível em:
https://secure.php.net/manual/pt_BR/book.filter.php. Acesso em: 21 jan. 2018.
PHP. Funções pra verificação de tipo de caractere. [S.l.]: The PHP Group, 2001-
2018d. Disponível em: https://secure.php.net/manual/pt_BR/book.ctype.php.
Acesso em: 21 jan. 2018.
117
PHP. hash. [S.l.]: The PHP Group, 2001-2018e. Disponível em: https://secure.
php.net/manual/pt_BR/function.hash.php. Acesso em: 21 jan. 2018.
PHP. Injeção de SQL. [S.l.]: The PHP Group, c2001-2018f. Disponível em: http://
php.net/manual/pt_BR/security.database.sql-injection.php. Acesso em: 21 jan. 2018.
PHP. md5. [S.l.]: The PHP Group, c2001-2018g. Disponível em: http://br.php.net/
md5. Acesso em: 21 jan. 2018.
PHP. sha1. [S.l.]: The PHP Group, c2001-2018i. Disponível em: http://br.php.net/
sha1. Acesso em: 21 jan. 2018.
PITT, C. Pro PHP MVC: everything you need to know about using MVC with
PHP in a single reference. New York: Apress, 2012.
RAY, M. et al. Fazer backup e restaurar bancos de dados do SQL Server. 2018.
Disponível em: https://bit.ly/3iRv5FU. Acesso em: 9 abr. 2019.
TECLOGICA. Gestão de banco de dados: 7 erros que você precisa evitar. 2017.
Disponível em: https://blog.teclogica.com.br/7-erros-que-voce-precisa-evitar-na-
sua-gestao-de--banco-de-dados/. Acesso em: 4 jun. 2020.
118
UNIDADE 3 —
OBJETIVOS DE APRENDIZAGEM
A partir do estudo desta unidade, você deverá ser capaz de:
PLANO DE ESTUDOS
Esta unidade está dividida em três tópicos. No decorrer da unidade,
você encontrará autoatividades com o objetivo de reforçar o conteúdo
apresentado.
CHAMADA
119
120
TÓPICO 1 —
UNIDADE 3
1 INTRODUÇÃO
A segurança é essencial em todos os processos que envolvam a criação do
banco de dados (BD), incluindo no sistema e/ou na aplicação desenvolvida, uma
vez que não tem como falar em segurança de um e do outro, pois todos estão
vinculados e interdependentes. As tecnologias de desenvolvimento são diferentes
e, consequentemente, seus recursos são diferenciados em relação à segurança e ao
controle de acesso.
121
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
122
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
NOTA
123
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
124
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
NTE
INTERESSA
125
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
126
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
TUROS
ESTUDOS FU
2 DISPONIBILIDADE E BACKUP
Conforme verificamos anteriormente, a segurança da informação é
composta por princípios como disponibilidade, integridade, confidencialidade,
autenticidade e não repúdio. Desse modo, conheceremos mais detalhes sobre a
disponibilidade, a qual está relacionada com o fato de as informações estarem
disponíveis sempre que forem solicitadas por um processo ou usuário.
Baars et al. (2018, p. 36, grifo nosso) indicam que a disponibilidade possui
algumas características: “Oportunidade: a informação está disponível quando
necessário; Continuidade: a equipe consegue continuar trabalhando no caso de
falha; e Robustez: existe capacidade suficiente para permitir que toda a equipe
trabalhe no sistema”, citando como exemplo “[...] tanto uma falha de disco como
127
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
NTE
INTERESSA
Para Baars et al. (2018, p. 36), “[...] para se proteger desses ataques, apenas
os serviços e portas necessárias devem estar disponíveis nos sistemas, e sistemas
de detecção de intrusão (Intrusion Detection Systems – IDS) devem monitorar o
tráfego da rede e a atividade das máquinas”. É válido mencionar também que “[...]
certas configurações de roteadores e firewalls também podem reduzir a ameaça de
ataques DoS e possivelmente impedi-los de acontecer” (BAARS et al., 2018, p. 36).
128
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
129
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Laudon e Laudon (2014, p. 279) afirmam que “[...] à medida que a receita
e as operações dependem cada vez mais de redes digitais, as empresas precisam
tomar medidas adicionais para assegurar que seus sistemas e aplicativos estejam
sempre disponíveis”.
Instituições financeiras, companhias aéreas e outras empresas cujas
aplicações críticas requerem processamento de transação on-line há
muitos anos usam sistemas de informação tolerantes a falhas, para
garantir 100% de disponibilidade. No processamento de transação on-
line, as transações solicitadas on-line são imediatamente processadas
pelo computador. A cada instante ocorrem alterações nos bancos de
dados, relatórios ou requisições.
Os sistemas de computação tolerantes a falhas incluem componentes
redundantes de hardware, software e fornecimento de energia elétrica,
criando um ambiente que oferece serviço contínuo ininterrupto.
Computadores tolerantes a falhas usam rotinas de software especial
ou lógica de autoverificação embutidos em seu circuito para detectar
falhas de hardware e automaticamente alternar para um dispositivo
backup. As peças desses computadores podem ser removidas e
consertadas sem interrupção do funcionamento do computador ou
downtime. Downtime refere-se a períodos em que um sistema não
está operante (LAUDON; LAUDON, 2014, p. 279-280).
130
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
131
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Oliveira e Piva (2010, p. 124) informam que “[...] a partir de uma estratégia
adequada de backup e restore, um plano de manutenção define uma série de
tarefas que devem ser executadas no banco de dados para garantir o seu bom
funcionamento e desempenho, bem como a disponibilidade das informações”.
Ainda complementam que “[...] no plano de manutenção podemos prever tanto
tarefas de backup para evitar a perda de informações, quanto de verificação da
integridade dos objetos do banco de dados” (OLIVEIRA; PIVA, 2010, p. 124).
DICAS
132
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
3 CONTROLE DE REDUNDÂNCIA
Um BD, além de ser um recurso de armazenamento, precisa ter dados
corretamente armazenados. O desempenho de um BD está relacionado com a sua
tecnologia de desenvolvimento e, principalmente, como foram construídos suas
tabelas e seus relacionamentos.
133
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
E
IMPORTANT
134
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
ALUNO
Nome Numero_aluno Tipo_aluno Curso
Silva 17 1 CC
Braga 8 2 CC
DISCIPLINA
TURMA
135
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
HISTORICO ESCOLAR
HISTORICO_ESCOLAR
136
TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS
137
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
DICAS
138
RESUMO DO TÓPICO 1
Neste tópico, você aprendeu que:
• Backups devem fazer parte da rotina diária. Deve-se ter controle dos intervalos
definidos de para o armazenamento seguro, elaboração de um plano de ação
para restauração dos serviços, além de ser testada essa restauração de backup
com frequência.
139
AUTOATIVIDADE
140
3 O objetivo de ter um banco de dados é ter dados armazenados de forma
consistente para posterior acesso e manipulação. O desempenho do banco
está ligado à tecnologia de seu desenvolvimento, mas, principalmente, como
foram construídas suas tabelas e relacionamentos. Evitar a redundância e a
inconsistência de dados é um dos desafios constantes. A partir dos controles
de redundância, classifique V para as sentenças verdadeiras e F para as falsas:
141
142
TÓPICO 2 —
UNIDADE 3
1 INTRODUÇÃO
Informações e dados são valiosos para todas as empresas, não importando
o seu tamanho ou segmento, sendo essencial o uso da segurança de dados.
A interceptação de informações confidenciais por indivíduos
não autorizados pode causar comprometimento de informações
particulares sobre funcionários ou consumidores, revelar ações de
marketing ou planos de desenvolvimento de um novo produto
ou ainda causar constrangimento organizacional. As organizações
com operações amplamente difundidas necessitam de um modo de
manter a segurança das comunicações com funcionários e parceiros de
negócios, nas quais deseja que suas instalações estejam (REYNOLDS;
STAIR, 2015, p. 278).
Em meio a esse cenário de acessos por redes com fio e sem fio, Reynolds e
Stair (2015, p. 278) constatam que “[...] a criptografia de dados é uma abordagem
utilizada para proteger a segurança das comunicações por meio das redes com
fio e sem fio. A criptografia é o processo de converter uma mensagem original
em uma forma que pode ser entendida apenas pelo receptor a quem é dirigida”.
143
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
NOTA
144
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
Por esse motivo, “[...] uma forma mais segura de criptografia, denominada
criptografia de chave pública, usa duas chaves: uma compartilhada (ou pública) e
outra totalmente privada” (LAUDON; LAUDON, 2014, p. 278).
145
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Ainda, segundo Elmasri e Navathe (2011), por mais que existam fluxos de
controles de acesso às informações de um banco de dados, os dados podem ser
interceptados e seu conteúdo identificado caso não seja usada criptografia:
Suponha que comuniquemos dados, mas eles caiam nas mãos de um
usuário ilegítimo. Nessa situação, ao usar a criptografia, podemos
disfarçar a mensagem de modo que, mesmo que a transmissão seja
desviada, a mensagem não será revelada. A criptografia é a conversão
de dados para um formato, chamado texto cifrado, que não pode ser
facilmente entendido por pessoas não autorizadas.
Ela melhora a segurança e a privacidade quando os controles de acesso
são evitados, pois em casos de perda ou roubo de dados, aqueles
criptografados não podem ser facilmente entendidos por pessoas não
autorizadas.
Com essa base, aderimos às seguintes definições padrão:
• Texto cifrado: dados criptografados (codificados).
• Texto limpo (ou texto claro): dados inteligíveis que têm significado
e podem ser lidos ou atuados sem a aplicação da descriptografia.
146
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
147
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
148
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
DICAS
2 CRIPTOGRAFIA DE TRIGGERS
Para compreensão desse assunto, é importante definirmos alguns conceitos
e objetivos relacionados a banco de dados, Structured Query (SQL) e ações que são
realizadas para manipulação dos dados (inclusão, alteração, exclusão, consultas,
entre outras ações). Gonçalves (2014, p. 31) afirma que “[...] quando falamos em
objetos, referimo-nos a tabelas, packages, triggers, procedures, functions etc. No caso
das tabelas que contêm os dados, os usuários com acesso a estes objetos também
poderão acessar os dados contidos nelas”.
149
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Conforme Elmasri e Navathe (2011, p. 58), “[...] a SQL usa os termos tabela,
linha e coluna para os termos do modelo relacional formal relação, tupla e atributo,
respectivamente”, complementando que “[...] o principal comando SQL para a
definição de dados é o CREATE, que pode ser usado para criar esquemas, tabelas
(relações) e domínios (bem como outras construções como views, assertions e triggers)”
(ELMASRI; NAVATHE, 2011, p. 58).
150
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
151
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
DICAS
152
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
NOTA
O before quer dizer antes que as alterações sejam feitas nos registros da tabela
em questão, ou seja, podemos dizer que o Oracle faz as alterações primeiramente em
memória, para depois efetivá-las no banco de dados. Com isso, dependendo do momento
tratado, before ou after, podemos ou não alterar estes dados.
Quando o trigger é disparado no momento before, os dados ainda não foram efetivados,
nesse caso, podemos alterar os valores antes que eles sejam gravados no banco de dados.
Quando é disparado no after, não há mais como alterá-los, pois já foram efetivados no
banco de dados (GOLÇALVES, 2015, p. 295).
153
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Tabela criada.
SQL>
Segue o código da trigger:
SQL> create trigger tig_audit_emp
2 after insert or delete or update of sal, comm on emp
3 declare
4 wnr_registros number default 0;
5 wvl_total_salario number default 0;
6 wvl_total_comissao number default 0;
7 wnr_registros_audit number default 0;
8 begin
9 select count(*)
10 into wnr_registros
11 from emp;
12 --
13 select sum(sal)
14 into wvl_total_salario
15 from emp;
16 --
17 select sum(comm)
18 into wvl_total_comissao
19 from emp;
20 --
21 select count(*)
22 into wnr_registros_audit
23 from tab_audit_emp;
24 --
25 if wnr_registros_audit = 0 then
26 --
27 insert into tab_audit_emp (
nr_registros, vl_total_salario, vl_total_comissao)
28 values (wnr_registros, wvl_total_salario,
wvl_total_comissao);
29 --
30 else
31 --
32 update tab_audit_emp
33 set nr_registros = wnr_registros
34 ,vl_total_salario = wvl_total_salario
35 ,vl_total_comissao = wvl_total_comissao;
154
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
36 --
37 end if;
38 end;
39 /
Gatilho criado.
SQL>
DICAS
155
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
3 CRIPTOGRAFIA DE VIEWS
Para compreensão da criptografia de views, precisamos definir alguns
conceitos sobre views e sua aplicabilidade. Conforme Elmasri e Navathe (2011,
p. 58), “[...] as views também são conhecidas como tabelas virtuais ou tabelas
derivadas porque apresentam ao usuário o que parecem ser tabelas; porém, a
informação nessas tabelas é derivada de tabelas previamente definidas”.
Cayres (2015, p. 58) determina que “[...] views são utilizadas para facilitar
o acesso a um determinado conjunto de dados”.
Esse recurso possibilita a criação de seleções de dados, provenientes
de tabelas, mas disponibilizados por meio de outras tabelas que atuam
como filtros. Esses filtros, na verdade, são uma restrição de dados,
baseados em regras estipuladas pelo usuário, para que somente os
resultados desejados sejam disponibilizados, e não todos os campos
e registros de uma determinada tabela do banco de dados (CAYRES,
2015, p. 58).
156
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
Para Elmasri e Navathe (2011, p. 89), “[...] pensamos em uma view como
um modo de especificar uma tabela que precisamos referenciar com frequência,
embora ela possa não existir fisicamente. Por exemplo, em relação ao banco de
dados EMPRESA” (Figura 2):
em vez de ter que solicitar consulta para a tabela específica que armazena essa
informação, pode-se definir uma view que tenha a junção dessas três informações.
O momento das consultas será a view que será solicitada, e não as tabelas
individuais FUNCIONARIO, TRABALHA_EM e PROJETO.
Em SQL, o comando para especificar uma view é CREATE VIEW.
A view recebe um nome de tabela (virtual), ou nome de view, uma
lista de nomes de atributo e uma consulta para especificar o conteúdo
da view. Se nenhum dos atributos da view resultar da aplicação de
funções ou operações aritméticas, não temos de especificar novos
nomes de atributo para a view, pois eles seriam iguais aos nomes
dos atributos das tabelas de definição no caso default (ELMASRI;
NAVATHE, 2011, p. 89).
158
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
Hintzbergen et al. (2018, p. 85) informam que “[...] cada pessoa envolvida
com TI e segurança de TI deve ter um entendimento básico dos conceitos
“criptografia”, “assinatura digital” e “certificados”, embora não necessariamente
o conhecimento técnico sobre como eles funcionam”. Dessa forma, entender de
criptografia é essencial para aumentar os aspectos de segurança das informações.
DICAS
159
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
DICAS
160
TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS
161
RESUMO DO TÓPICO 2
Neste tópico, você aprendeu que:
• Trigger e views são objetos que compõe um banco de dados e, embora cada um
possua finalidades específicas, ambos os recursos podem receber criptografia,
aumentando sua segurança caso o banco seja acessado indevidamente.
• Views são comandos em linguagem SQL que permitem visões e consultas aos
dados, apresentando as informações de uma ou mais tabelas, em consultas
mais elaboradas e complexas. O uso de views proporciona melhor desempenho
para as consultas realizadas.
162
AUTOATIVIDADE
( ) Views são tabelas físicas, ao qual são utilizadas para facilitar acesso a um
conjunto específico de dados.
( ) A criptografia de views é utilizada para aumentar os aspectos de segurança
das informações.
( ) Views é um interessante recurso ao qual proporciona juntar dados de tabelas
separadas, permitindo criar novas visões sobre os dados armazenados.
163
Assinale a alternativa que apresenta a sequência CORRETA:
a) ( ) V – F – F.
b) ( ) V – F – V.
c) ( ) F – V – V.
d) ( ) F – F – V.
164
TÓPICO 3 —
UNIDADE 3
1 INTRODUÇÃO
Tuning, em banco de dados, é um importante estudo, pois um banco não
pode apenas armazenar dados, ele deve ter um bom desempenho nas requisições
realizadas nele. Por isso, precisamos definir e contextualizar sobre tuning.
Segundo Caiut (2015, p. 55), para aplicação do tuning “[...] não existe uma
receita que se aplique a todos os casos de todas as tabelas da base”, considerando
que deve haver “conhecimento empírico, depende do seu ambiente, aplicar e medir”.
165
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Segundo Cayres (2015), tudo se inicia com um bom modelo físico de banco
de dados.
Podemos fazer as seguintes afirmações sobre o modelo físico:
• Usa como base o modelo lógico.
• Detalhes sobre armazenamento interno dos dados (questões que
influenciam o desempenho das aplicações)
• Usado por quem faz a sintonia do banco (ajuste de desempenho –
“tuning”).
• Auxilia na escolha do SGBDR considerando, por exemplo: Tempo
de resposta, utilização de espaço em disco, taxa de processamento
de transações (throughput), custo etc.
• Resultado: definição de estruturas para construção do BD (script
em SQL/DDL)
• Ferramentas CASE podem converter o modelo lógico em um script
SQL/DDL (CAYRES, 2015, p. 55).
166
TÓPICO 3 — TUNING EM BANCOS DE DADOS
De acordo com Reynolds e Stair (2015, p. 213), “[...] após dar entrada nos
dados em um banco de dados relacional, os usuários podem consultar e analisar os
dados. As manipulações básicas de dados incluem selecionar, projetar e reunir”. Os
autores ainda afirmam que “[...] o modelo do banco de dados relacional é de longe
o mais utilizado. Ele é mais fácil de ser controlado, mais flexível e mais intuitivo que
outros porque organiza os dados em tabelas” (REYNOLDS; STAIR, 2015, p. 213).
Segundo Elmasri e Navathe (2011, p. 490), “[...] o projeto físico é
uma atividade em que o objetivo é não apenas criar a estruturação
apropriada de dados no armazenamento, mas também fazer isso de
modo que garanta um bom desempenho”. O desempenho do banco
já deve ser levado em consideração quando é desenvolvido, conforme
Elmasri e Navathe (2011, p. 490):
167
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
168
TÓPICO 3 — TUNING EM BANCOS DE DADOS
169
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
DICAS
170
TÓPICO 3 — TUNING EM BANCOS DE DADOS
171
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
172
TÓPICO 3 — TUNING EM BANCOS DE DADOS
DICAS
173
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
174
TÓPICO 3 — TUNING EM BANCOS DE DADOS
175
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
176
TÓPICO 3 — TUNING EM BANCOS DE DADOS
Gonçalves (2014, p. 26) indica que “[...] o SGDBR da Oracle pode ser usado
em vários tipos de equipamentos, sendo eles computadores de pequeno e grande
porte. Quanto à plataforma, dá suporte a uma gama de ambientes incluindo,
UNIX, VMS, MVS, HP, Macintosh, Rede Novell, MS-Windows entre outros”.
Gonçalves (2014, p. 26-27) ainda informa que o Oracle possui características
interessantes, além de compatibilidade com outros SGBDRs:
Possui compatibilidade com outros SGDBRs, tais como, DB/2 e SQL/
DS da IBM, Sybase, Ingres, Informix, e outros não relacionais como
SAS, lipper, Lotus etc. Outras características relacionais são:
• Controle sofisticado de concorrências;
• Suporte total para visões e junções;
• Consistência garantida na leitura de dados;
• Otimização de consultas avançadas baseadas em custo;
• Transações de multietapas garantidas contra falhas;
• Recuperação automática contra quebras ou falhas de computador;
• Indexação dinâmica;
• Pesquisas distribuídas;
• Junções externas (outer joins inexistentes em outros SGBDRDs);
• Funções lógicas de textos;
• Usuários e SCHEMAS;
• Índices, clusters e hash clusters;
• Sequências;
• Procedimentos, pacotes e triggers;
• Sinônimos, papéis e privilégios;
• Segmentos de Rollback;
• Snapshots e visões materializadas.
177
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Assim, “[...] você precisa conhecer estas regras, para que em determinados
casos, não acabe cometendo enganos no momento que estiver escrevendo
instruções SQL, como, por exemplo, quando estiver utilizando os operadores OR
e AND” (GONÇALVES, 2014, p. 162). Um exemplo apresentado por Gonçalves
(2014, p. 162-163) pode facilitar o entendimento:
SQL> select last_name, job_id, salary
2 from employees
3 where job_id = ’SA_REP’
4 or job_id = ’AD_PRES’
5 and salary > 15000
6
SQL>
job_id = ’SA_REP’
ou
job_id = ’AD_PRES’ E salary > 15000
178
TÓPICO 3 — TUNING EM BANCOS DE DADOS
179
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
DICAS
180
TÓPICO 3 — TUNING EM BANCOS DE DADOS
181
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
Cayres (2015, p. 123) esclarece que “[...] os SGBDs mais modernos possuem
um otimizador de consultas que ajuda a determinar a maneira mais eficiente de
executar operações”, citando como exemplo o banco PostgreSQL:
No PostgreSQL, podemos utilizar o comando EXPLAIN, que permite
visualizar todas as etapas envolvidas no processamento de uma
consulta SQL/DML. Essa visão do funcionamento interno do banco
permite fazer melhorias em consultas que estejam tomando tempo
excessivo.
A sintaxe do EXPLAIN é:
Em que:
ANALYSE executa de fato o comando e retorna o tempo de execução.
VERBOSE vai detalhar ainda mais o resultado do comando EXPLAIN
(CAYRES, 2015, p. 123).
182
TÓPICO 3 — TUNING EM BANCOS DE DADOS
Por fim, para Caiut (2015, p. 107), “[...] são muitas as alternativas que
precisam ser consideradas até encontrar uma solução para um problema de
desempenho. Raramente alguém trará um problema parcialmente depurado,
indicando que a rotina tal está com problemas”.
Dessa forma, toda a análise que envolve o banco deverá ser considerada e
verificada, desde o local que hospeda esse banco de dados até mesmo a análise dos
sistemas instalados nesse mesmo servidor, além de aspectos que envolvem a rotina
em específico que está causando lentidão ou não processos de gargalo no sistema.
183
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
LEITURA COMPLEMENTAR
INTRODUÇÃO
CONCEITUALIZAÇÃO
184
TÓPICO 3 — TUNING EM BANCOS DE DADOS
AMEAÇA
VULNERABILIDADE
185
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
SQL INJECTION
$usuario = $_POST['usuario'];
$senha = $_POST['senha'];
$sql = “SELECT * FROM usuarios WHERE usuario = '“.$usuario”.' AND senha =
'“.$senha”.' “;$processa = mysql_query($sql);
if (isset($_GET['pagina'])) {
// Pega o valor da variável $_GET['pagina']
$arquivo = $_GET['pagina'];
} else {
// Se não existir variável, define um valor padrão
$arquivo = 'home.php';
}
include ($arquivo); // Inclui o arquivo
186
TÓPICO 3 — TUNING EM BANCOS DE DADOS
SEGURANÇA
187
UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS
CONCLUSÃO
FONTE: Adaptado de SANTOS, M. V. S. et al. Segurança em Banco de Dados: Uma visão geral
sobre segurança e suas principais deficiências. FEPEG, 2014. Disponível em: https://bit.ly/3yZx941.
Acesso em: 23 jan. 2021.
188
RESUMO DO TÓPICO 3
Neste tópico, você aprendeu que:
189
• O processo de tuning é constante e não há uma forma exata de realizá-lo,
mas existem parâmetros que auxiliam, pois dependerá do tipo de banco,
tecnologia de desenvolvimento do sistema, nível de complexidade nas
operações e processos.
CHAMADA
190
AUTOATIVIDADE
191
( ) Consultas e transações nos bancos de dados devem ser monitoradas
constantemente, a fim de ser possível identificar se algum processo ou tabela
precisa de ajuste.
( ) Análise de atributos e chaves seja primária ou estrangeira devem ser
evitados, pois o impacto é muito grande, caso seja necessário fazer ajustes
de tuning.
( ) As frequências esperadas de operações de atualização devem ser
analisadas, identificando se há algum caminho que a aplicação possa
percorrer que ocasione falta de desempenho.
5 Segundo Caiut (2015, p. 55), para aplicação do tuning, “não existe uma receita
que se aplique a todos os casos de todas as tabelas da base” e que deve existir
conhecimento empírico, análise do ambiente, realização da aplicabilidade e
avaliação do resultado. A partir desse contexto, disserte sobre os motivos
pelo qual não é possível ter um padrão para realização de tuning em banco
de dados.
192
REFERÊNCIAS
BAARS, H. et al. Fundamentos de Segurança da Informação – com base na ISO
27001 e na ISO 27002. Rio de Janeiro: Brasport, 2018.
193
GONÇALVES, E. SQL – Uma abordagem para banco de dados Oracle. São
Paulo: Casa do Código, 2014.
194