Banco de Dados 2012 1 Parte 8

Livre

0
0
16
1 year ago
Preview
Full text

  DCL – Comandos para o Controle do Gerenciador, Conexão e Usuário SQL

  Comando CONNECT – Permite a conexão a uma base de dados por meio de um gerenciador; Parte 5 – Avançado Universidade Federal de Sergipe Parte Retirado de André Vinicius R. P. Nascimento – Comando DISCONNECT – Parte retirado de Melissa Lemos – PUC-Rio Cláudio Baptista – DSC - UFCG Parte retirado de Gutember Medeiros que retirou de Desconecta uma base de dados. ECO031 - Banco de Dados - Aulas Teóricas - 311

  Fabiana Costa Guedes

  Visões em SGBDs Visões em SGBDs

CREATE VIEW VW_LOJA

  Representa uma tabela virtual AS derivada de outras tabelas básicas ou

  SELECT CD_LOJA, NM_LOJA, CD_CATEGORIA mesmo de outras visões.

FROM TB_LOJA

  Essa derivação é alcançada por meio de uma consulta SQL O comando SQL CREATE VIEW é utilizado para a definição de Visões (Views) ECO031 - Banco de Dados - Aulas Teóricas - 312 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes Fabiana Costa Guedes

  Visões em SGBDs Visões em SGBDs A visão VW_LOJA comporta-se, para A visão VW_LOJA não existe consultas, como uma tabela normal. fisicamente como uma tabela.

  Seus dados ou sua consulta existem SELECT CD_LOJA, NM_JOJA somente no momento de utilização da FROM VW_LOJA CREATE VIEW VW_LOJA visão.

  SELECT NM_LOJA AS SELECT CD_LOJA, NM_LOJA, CD_CATEGORIA FROM VW_LOJA FROM TB_LOJA WHERE CD_CATEGORIA = 1

  316 Visões em SGBDs

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Utilizamos o comando DROP VIEW para apagar uma View

  Utilizamos o comando ALTER VIEW para alterar uma View ALTER VIEW VW_LOJA AS SELECT NM_LOJA, CATEGORIA FROM TB_LOJA WHERE ESTADO = ‘SE’ 317

  Visões em SGBDs – Principais Objetivos

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Segurança Ocultar informações que não sejam relevantes para um usuário ou aplicação. Transparência ou Baixo Acoplamento entre aplicações. Combinação e Otimização (visões particionadas) Simplicidade

DROP VIEW VW_LOJA

  Criar consultas pré-definidas que omitem a complexidade dos esquemas de dados.

  318 Visões em SGBDs – Atualizando Visões

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes Visões são úteis em consultas, mas existem restrições em relação a atualizações (é ainda pesquisa corrente) Para ilustrarmos alguns problemas, considere a visão Alocacao1 e suponha que queiramos atualizar o atributo nomeP da tupla que contém ‘João’ de ‘ProdutoX’ para ‘Produto Y’ CREATE VIEW Alocaçao1(nomeE, nomeP, Horas) AS SELECT E.nome, P.nome, horas FROM Empregado E, Projeto P, Alocação A WHERE E.matricula = A.matricula and P.codproj=A.codigop UPDATE Alocacao1 SET nomeP = ‘ProdutoY’ WHERE nomeE = ‘João’ and nomeP = ‘ProdutoX’ 319

  Visões em SGBDs – Atualizando Visões

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes O update anterior pode ser mapeado em vários updates nas relações base. Dois possíveis updates: UPDATE Alocacao SET codigop = (SELECT codproj FROM Projeto WHERE nome = ‘ProdutoY’) WHERE matricula = (SELECT matricula FROM Empregado WHERE nome = ‘João’) and codigop = (SELECT codproj FROM Projeto WHERE nome = ‘ProdutoX’) UPDATE Projeto SET nome = ‘ProdutoX’ WHERE nome = ‘ProdutoY’

  Visões em SGBDs – Atualizando Visões Observações: Uma visão definida numa única tabela é atualizável se os atributos da visão contêm a chave primária Visões definidas sobre múltiplas tabelas usando junção geralmente não são atualizáveis Visões usando funções de agrupamento e agregados não são atualizáveis

  Stored Procedures Stored Procedures ou Procedimentos armazenados representam programas que são armazenados nos SGBDs.

  Geralmente, esses programas apresentam comandos da linguagem SQL combinados com estruturas de controle de linguagens imperativas como IF, WHILE, BREAK, CONTINUE, FOR etc.

  322 Stored Procedures

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 323

  Stored Procedures

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

EXEC SP_FUNCIONARIOS

  324 Stored Procedures – Criação/DROP

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes Por meio do comando Create Procedure.

  CREATE PROCEDURE SP_FUNCIONARIOS AS SELECT MATRICULA, NOME FROM TB_FUNCIONARIO Por meio do comando DROP Procedure. DROP PROCEDURE SP_FUNCIONARIOS 325 Stored Procedures – Execução/Alteração

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes Por meio do comando EXEC.

  Por meio do comando ALTER PROCEDURE ALTER PROCEDURE SP_FUNCIONARIOS AS SELECT MATRICULA, NOME FROM TB_FUNCIONARIO WHERE CD_DEPARTAMENTO = 2

  Stored Procedures – Parâmetro de Entrada CREATE PROCEDURE SP_FUNCIONARIO (@MATRICULA INT) AS SELECT * FROM TB_FUNCIONARIO WHERE MATRICULA = @MATRICULA --Executando o procedimento passando o valor 10 como parâmetro EXEC SP_FUNCIONARIO 10

  Stored Procedures – Parâmetro de Saída

CREATE PROCEDURE SP_INCLUI_FUNCIONARIO (@MATRICULA INT, @NOME VARCHAR(40), @MENSAGEM VARCHAR(40) OUTPUT) AS

  VALUES(@MATRICULA, @NOME) SET @MENSAGEM = ‘FUNCIONARIO INCLUIDO’ --Executando o procedimento DECLARE @MENSAGEM VARCHAR(40) EXEC SP_INCLUI_FUNCIONARIO 10, ‘JOAO’, @MENSAGEM OUTPUT

  328 Gatilho ou Trigger

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Tipo especial de procedimento armazenado, associado a uma tabela, que é executado quando dados são modificados. Objetivo: Assegurar regras de negócio ou restrições que, por serem complexas, não podem ser tratadas por outros mecanismos (CHECK, FOREIGN KEY, etc) Quando é executada: Quando um Evento acontece.

  Esse Evento pode ser um INSERT, UPDATE ou DELETE em uma tabela específica. 329 Gatilho ou Trigger - Criando

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes CREATE TRIGGER TG_ALUNO_INSERT ON TB_ALUNO AFTER INSERT AS ... CREATE TRIGGER TG_ALUNO_INSERT ON TB_ALUNO AFTER INSERT, UPDATE AS ... CREATE TRIGGER TG_ALUNO_DELETE ON TB_ALUNO AFTER DELETE AS ...

  330 Gatilho ou Trigger – Remoção/Habilitar/Desabilitar

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes DROP TRIGGER TG_ALUNO_INSERT ALTER TABLE TB_ALUNO DISABLE TRIGGER TG_ALUNO_INSERT ALTER TABLE TB_ALUNO DISABLE TRIGGER ALL ALTER TABLE TB_ALUNO ENABLE TRIGGER TG_ALUNO_INSERT ALTER TABLE TB_ALUNO ENABLE TRIGGER ALL 331

  Gatilho ou Trigger – Obtendo Informações

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Listar as triggers associadas a uma tabela: sp_helptrigger ‘TB_ALUNO’

  Verificar o código de uma trigger: sp_helptext ‘TG_ALUNO_INSERT’

  Gatilho ou Trigger – Observações Não se pode chamar diretamente um trigger Não é permitido iniciar ou finalizar transações em meio à TRIGGERS Não se pode criar triggers para uma tabela temporária ou para uma visão Triggers ainda não podem sr implementadas com a intenção de devolver para o usuário ou para uma aplicação mensagens de erros

  Transação É um programa em execução que forma uma unidade lógica de processamento no banco de dados. Conjunto de operações que leva um banco de dados de um estado consistente para outro estado consistente.

  Fica em um programa de aplicação ou de forma interativa (SQL).

  334 Transação - Exemplos

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Transferência Bancária Saque em terminal de Cash Compra com Pagamento no Cartão de Crédito Compra de Passagem Aérea 335

  Transação - Motivação

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  SGBD é um sistema multi-usuário Reserva de passagens aéreas, bancos comerciais Multiprogramação Uso simultâneo do sistema por vários usuários

  Processamento de transações concorrentes Há uso compartilhado de CPU Para otimização dos recursos computacionais há execução intercalada dos programas/ transações. Em ambiente com multiprocessador: há execução simultânea ou paralela.

  336 Transação

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  O que acontece quando dois comandos SQL atualizam o mesmo dado ou se o sistema falha durante a execução de um comando? Se o comando for de consulta, estes acontecimentos não são problemas. Se o comando for de atualização, remoção ou inserção, estas condições podem refletir em efeitos desastrosos no BD. 337

  Transação

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Intuitivamente, uma transação parte com um estado do BD, realiza sua ação nele, e gera uma nova versão do BD, causando uma mudança de estado. É preciso garantir que A transação pode ser executada concorrentemente com outras Podem acontecer falhas durante a execução de uma transação Após a mudança de estado, o BD continua consistente.

  Transação Transação

  Uma transação é limitada por declarações de início e fim de transações BEGIN TRANSACTION COMMIT

  Término da transação com a efetivação das atualizações de forma persistente. Neste caso, o banco de dados mudou de estado, isto é, passou para um estado diferente do estado inicial. ROLLBACK Término da transação com a indicação de que algum tipo de erro que não permitiu o sucesso da execução. Os resultados da transação devem ser desfeitos, o banco de dados permanece no estado inicial. Transação - Exemplo Transação - Exemplo begin Begin_transaction Reservation input (flight_no, date, customer_name);

FLIGHT(FNO, DATE, SRC, DEST, STSOLD, CAP)

  INTO temp1, temp2 FROM FLIGHT Dados do vôo: número, data, origem, destino, qte. WHERE FNO = flight_no AND DATE = date; de assentos vendidos, número total de assentos) if temp1=temp2 then begin output(“no free seats”);

CUST(CNAME, ADDR, BAL)

  end Rollback Dados do cliente: nome, endereço, saldo else begin EXEC SQL UPDATE FLIGHT SET STSOLD = STSOLD+1 WHERE FNO =

FC(FNO, DATE, CNAME, SPECIAL)

  flight_no AND DATE = date; EXEC SQL INSERT INTO FC(FNO,DATE, CNAME, SPECIAL) VALUES Relacionamento dos clientes e vôos: número do (flight_no, date, customer_name, null); vôo, data, nome do cliente, observação especial da Commit; output(“reservation completed”) reserva ECO031 - Banco de Dados - Aulas Teóricas - ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes end end Fabiana Costa Guedes

  Transação – Transações Incompletas Transação Possíveis razões para que a execução de uma O conceito de transação requer que todas as transação não se realize por completo operações sejam executadas de forma indivisível.

  Propriedades: atomicidade, consistência, isolamento Problemas de hardware - Conteúdo da memória e durabilidade principal pode ser perdido Atomicidade Erros lógicos ou interferência do usuário -

  Divisão por zero, Interrupção por CTRL+C Uma transação precisa ser atômica (tudo ou nada). Tratamento de exceções - Conta corrente sem fundos, Avião com lotação esgotada A execução com sucesso de uma transação é conhecida como commit. Controle de concorrência - Deadlock A falha de uma transação é conhecida como Problemas externos - Falta de luz.

ECO031 - Banco de Dados - Aulas Teóricas - 342 ECO031 - Banco de Dados - Aulas Teóricas - 343

Fabiana Costa Guedes abort. Fabiana Costa Guedes

  Transação Transação

  Consistência Durabilidade

  Uma transação deve manter um banco de Quando uma transação chega ao dados consistente. seu final com sucesso (commit),

  Essa propriedade é, parte responsabilidade do suas modificações não serão

  SGBD, parte responsabilidade dos analistas de aplicações. perdidas por falhas de sistema.

  Isolamento Uma transação não deve sofrer interferência de outras transações sendo executadas de forma concorrente.

  Introdução Segurança em Banco de Uma das maiores preocupações em computação

  Dados tem sido segurança da informação Nos dias atuais, com o uso da Internet os sistemas tornam-se onipresentes, entretanto também vulneráveis a ataques maliciosos Portanto, os SGBDs trazem uma camada de segurança que visa compor todo o arsenal de segurança da informação numa corporação ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 347

  Introdução Introdução

  Definição: O subsistema de segurança é responsável

  Segurança em Banco de dados diz respeito à por proteger o BD contra o acesso não proteção do banco de dados contra ataques

  autorizado.

  intencionais ou não intencionais, utilizando-se ou não de meios computacionais Formas de acesso não autorizado:

  Áreas envolvidas:

  leitura não autorizada roubo e fraude modificação não autorizada perda de confidencialidade destruição não autorizada perda de privacidade

  O ABD tem plenos poderes para dar e

  perda de integridade revogar privilégios a usuários. perda de disponibilidade ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 348 ECO031 - Banco de Dados - Aulas Teóricas - 349 Fabiana Costa Guedes

  Introdução Introdução

  Motivação: Exemplo Locadora

  Controles de segurança computacionais Adiciona-se uma camada à segurança provida pelo SO

  Apenas alguns empregados podem modificar Autorização e autenticação preços dos DVDs

  Views Clientes usando o sistema de consulta, não devem ter acesso a outras funcionalidades Backup e recovery (vendas, contabilidade, folha de pagamento,

  Integridade etc)

  Stored procedures Apenas o pessoal da gerência deve ter acesso

  Criptografia às informações dos empregados (por exemplo:

  Auditoria empregados-a-demitir)

  Procedimentos associados Clientes não devem ver o preço de compra de e.g. upgrading, virus checking, proxy, firewall, kerberos, um produto certificados digitais, SSL, SHTTP, etc. ECO031 - Banco de Dados - Aulas Teóricas -

  352 Introdução

  Ver SELECT Tabelas, colunas, métodos invocados Criar

  Introdução Com respeito a DDL:

  Usuários Papéis (Roles) O criador de um objeto é o dono do objeto e assim tem todos os privilégios sobre o objeto, podendo autorizar a outros usuários alguns (ou todos) estes privilégios. A opção with grant option, permite ao usuário que recebeu um privilégio repassar para quem quiser. ECO031 - Banco de Dados - Aulas Teóricas -

  Introdução O usuário tem um auth_ID que o identifica Existe PUBLIC que representa todos usuários Privilégios são atribuídos/revogados:

  O que se espera do SGBD é o mesmo tratamento dado à tentativa de acesso a uma tabela inexistente (“no such table”). Portanto, se um usuário tentar acessar uma tabela que ele não tem privilégios para tal o erro será: “Either no such table or you have no privilege on the table” Razão: Segurança ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Executar EXECUTE Stored procedures ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 355 Introdução

  INSERT Tabelas, colunas Modificar UPDATE Tabelas, colunas Remover DELETE Tabelas Referenciar REFERENCES Tabelas, colunas Usar USAGE UDT – Tipo Definido pelo Usuário Ativar TRIGGER Tabelas

  Proteção Privilégio Aplica-se a

  Controles de segurança não computacionais

  354 Introdução

  Controle de acesso mandatório: cada dado é rotulado com um certo nível de classificação a cada usuário é dado um certo nível de acesso rígido, hierárquico ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Controle de acesso discreto: Um dado usuário tem direitos de acessos diferentes (privilégios) em objetos diferentes Flexível, mas limitado a quais direitos usuários podem ter em um objeto

  Duas abordagens para segurança de dados:

  Introdução

  Política de segurança e plano de contingência Posicionamento seguro de equipamentos Controle de acesso físico Manutenção ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 353

  Um usuário pode executar qualquer comando DDL no esquema que ele é dono. Um usuário NÃO pode executar nenhuma operação DDL no esquema que ele não é o dono.

  358 Usuários e Papéis

  Identificador de usuário Alguns SGBDs permitem que o usuário use o mesmo login e senha do SO

  Papéis (Roles) É um identificador ao qual pode-se atribuir privilégios que não existem a princípio. Então pode-se atribuir a um usuário este papel (conjunto de privilégios) com um único comando GRANT.

  Pode-se inclusive ao criar um papel usar outros papéis já cadastrados. Ex. PapelVendedor, PapelVendedorSapatos, PapelVendedoFrutas. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 359

  Papéis - Roles CREATE ROLE nome-papel [WITH ADMIN {CURRENT_USER | CURRENT_ROLE}] Para remover um papel: DROP ROLE nome-papel; ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  360 Papéis - Roles

  Existem papéis padrões na maioria dos SGBD:

  DBA: permite desempenhar o papel de administrador do banco de dados Resource: permite criar seus próprios objetos Connect: permite apenas se conectar ao banco de dados, mas deve receber os privilégios de alguém para acessar objetos. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 361

  Regras de Autorização Expressam os mecanismos de autorização em relações / visões / stored procedures São compiladas e armazenadas no dicionário de dados São expressas em linguagem de alto nível (Ex. SQL) Uma maneira do SGBD implementar estas regras é usar uma matriz de autorização, onde cada linha corresponde a um usuário e cada coluna corresponde a um objeto. M[i,j] => conjunto de regras de autorização que se aplica ao usuário i com relação ao objeto j. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Regras de Autorização O ABD fornece / revoga as autorizações de leitura, inserção, atualização e remoção aos usuários nas diversas tabelas / visões, e estes podem repassá- los caso receba autorização para tal. Empregado Departamento Projeto João Select Update, select Select, delete, update Maria None None Select Pedro None None None Ana All All All ECO031 - Banco de Dados - Aulas Teóricas -

  Regras de Autorização

  O comando GRANT GRANT lista-privilégios ON objeto TO lista-usuários [WITH GRANT OPTION] [GRANTED BY

  {CURRENT_USER|CURRENT_ROLE}]

  Regras de Autorização Regras de Autorização Lista de privilégios: Privilégios: |ALL PRIVILEGES Privilégio1[, privilégio2 ...]

  Lista de usuários: |INSERT [coluna,...] |DELETE |SELECT (método,...) SELECT [coluna,...] authID, [authID ...] | PUBLIC |REFERENCES [(coluna ...)] |UPDATE [coluna ...] OBS.: authID pode ser login ou role |USAGE

  A opção GRANTED BY indica se os |TRIGGER privilégios concedidos são autorizados pelo |EXECUTE ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 364 usuário corrente ou pelo role. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 365

  Regras de Autorização Exemplos

  Autorizando papéis /*Permite a quem tenha o papel Gerente_Loja apenas ver a tabela empregados*/ GRANT SELECT ON EMPREGADOS TO

  GRANT role-name [, role-name ...] GERENTE_Loja

  To lista-usuários [WITH ADMIN OPTION]

  /*Privilégios de remoção com permissão de [GRANTED BY repassar o privilégio */

  {CURRENT_USER|CURRENT_ROLE} GRANT DELETE ON Empregados TO Carlos WITH GRANT OPTION

  Um role-name pode ter um número ilimitado de privilégios ou outros roles ECO031 - Banco de Dados - Aulas Teóricas - 366 ECO031 - Banco de Dados - Aulas Teóricas - 367 Fabiana Costa Guedes Fabiana Costa Guedes

  Exemplos Exemplos

  /* Update de uma coluna específica */ /* Acesso público em views */

  GRANT UPDATE (preço) ON Produtos TO Gerente_Loja GRANT SELECT ON MinhaVisão TO PUBLIC;

  /* Privilégios de inserção */ GRANT INSERT ON Produtos TO Carla, Maria, Marta

  /* referências (foreign key) */ /* Inserção só em algumas colunas */

  GRANT REFERENCES (titulo) GRANT INSERT (id, preco, descricao, tipo) ON Produtos TO Assistente ON FILMES TO Pedro; ECO031 - Banco de Dados - Aulas Teóricas -

  Exemplos Exemplos

  Um privilégio TRIGGER numa tabela ALL PRIVILEGES permite criar um trigger para aquela tabela

  Permite especificar uma lista de privilégios que

  O privilégio EXECUTE permite um usuário inclui todos os privilégios de um objeto ou role executar uma determinada stored específico no qual o usuário executando o procedure.

  GRANT tem o privilégio para dar o grant (recebeu WITH GRANT OPTION ou é o dono)

  Exemplo:

  Ex.:

  GRANT EXECUTE ON AumentaSalario TO

  GRANT ALL PRIVILEGES ON Filmes to Patricia

  isabel ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 370 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 371

  Revoke Revoga autorização de privilégios

  Auditoria Se o usuário A tiver concedido o privilégio P para o usuário B, então A poderá, posteriormente, revogar o privilégio P de B, através do comando REVOKE Sintaxe: REVOKE <privilégios> ON <relação/visão> FROM <usuários> Ex.: REVOKE delete ON projeto FROM Marta, Ana

  REVOKE update ON Empregado FROM Ana REVOKE DBA FROM Bruno ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 372 Auditoria SGBD Analisa Auditoria DBA Ativa auditoria de banco de dados Especifica parâmetros opções Arq. de Usuário Executa comando de servidor Processo de auditoria informações de auditoria Opções de auditoria de auditoria Gera trilha

  Solução: Auditar, Investigar auditoria Trilha de de S/O ??? Quem fez o quê e quando ??? ECO031 - Banco de Dados - Aulas Teóricas - de dados Banco Trilha de auditoria Diretrizes de Auditoria Diretrizes de Auditoria Avaliar o propósito de auditoria, evitando auditoria

  Defina as finalidades da auditoria desnecessária.

  Atividade de banco de dados suspeita Reuna informações históricas Que tipo de atividade do BD você suspeita? Quem são os suspeitos?

  Defina o que você deseja auditar

  Auditar, inicialmente, de forma genérica e ir Auditar usuários, instruções ou objetos especializando.

  Por sessão Apesar do custo baixo deve-se limitar o nº de eventos

  Com ou sem sucesso auditados o máximo possível para minimizar:

  Gerencie a trilha de auditoria

  O impacto de performance na execução de Monitorar o crescimento da trilha de auditoria comandos auditados

  Proteger a trilha de auditoria de acesso O tamanho do audit trail não-autorizado ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 376 ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 377

  Audit Trail Audit Trail

  Audit trail: componente de todo SGBD Algumas informações do audit trail: que armazena histórico de Nome do login do usuário no SO; informações de auditoria

  Nome do usuário no BD;

  Oracle: tabela SYS.AUD$ Identificador de sessão;Identificador do terminal;

  Nome do objeto do esquema acessado;

  DB2: log DB2AUDIT.LOG

  Operação executada ou tentada; O SO também pode ter um audit trail. Código de conclusão da operação;

  Podendo ser usado em conjunto com Data e hora. o do BD. ECO031 - Banco de Dados - Aulas Teóricas - 378 ECO031 - Banco de Dados - Aulas Teóricas - 379 Fabiana Costa Guedes Fabiana Costa Guedes

  Introdução

  Um banco de dados precisa ter um

  Backup e Restore

  mecanismo que possa proteger dados no sistema em caso de falhas. Para garantir a durabilidade das transações é obrigatório que nenhuma falha possa criar dados incorretos. Para proteger a si mesmo de falhas, um BD executa várias operações, o que inclui a criação de cópias de segurança e logs de transação. Tipos de Falhas Backup e Restore

  Falhas na transação – ocorre quando uma Backup é uma copia de segurança que transação não pode ser concluída devido a envolve dois dispositivos distintos. um erro nela própria;

  O restore é o ato de se fazer uso dos dados Falhas no sistema – ocorre quando o sistema cai devido à queda de energia ou armazenados recuperando-os (na maioria outro problema do tipo. A recuperação dos casos no próprio dispositivo original). ocorre após a reinicialização do sistema;

  A recomendação é que mantenha uma Falhas de mídia – ocorre quando o disco cópia local dos seus arquivos, para que rígido que contém o BD é danificado. A recuperação é feita com a utilização de você seja capaz de fazer a recuperação cópias de backup. ECO031 - Banco de Dados - Aulas Teóricas - ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 382 instantânea dos dados. Fabiana Costa Guedes 383

  Backup e Restauração Backup e Restauração Tipos de Backup Tipos de Backup

  Um backup de cópia copia todos os arquivos selecionados, mas não os marca como arquivos que passaram por backup

  Copy Copy

  (ou seja, o atributo de arquivo não é desmarcado).

  A cópia é útil caso você queira fazer backup de arquivos entre os backups normal e incremental, pois ela não afeta essas outras ECO031 - Banco de Dados - Aulas Teóricas - 384 ECO031 - Banco de Dados - Aulas Teóricas - 385 Fabiana Costa Guedes operações de backup. Fabiana Costa Guedes

  Backup e Restauração Backup e Restauração Tipos de Backup Tipos de Backup

  Um backup diário copia todos os arquivos selecionados que foram Copy Copy modificados no dia de execução do backup diário.

  Daily Daily Os arquivos não são marcados como arquivos que passaram por backup (o atributo de arquivo não é ECO031 - Banco de Dados - Aulas Teóricas - desmarcado). Backup e Restauração Backup e Restauração Tipos de Backup Tipos de Backup

  Um backup diferencial copia arquivos criados ou alterados desde o último backup normal ou incremental. Não marca os arquivos como arquivos que

  Copy Copy

  passaram por backup (o atributo de arquivo não é desmarcado).

  Daily Daily

  Se você estiver executando uma combinação dos backups normal e diferencial, a restauração de arquivos e pastas exigirá o último backup normal e o

  Differential Differential ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 388 último backup diferencial. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 389 Backup e Restauração Backup e Restauração Tipos de Backup Tipos de Backup

  Um backup incremental copia somente os arquivos criados ou alterados desde o último backup normal ou incremental e os marca como arquivos que passaram por

  Copy Copy

  backup (o atributo de arquivo é desmarcado).

  Daily Daily

  Se você utilizar uma combinação dos backups normal e incremental, precisará do último conjunto de backup normal e de todos os conjuntos de backups incrementais

  Incremental Incremental Differential Differential ECO031 - Banco de Dados - Aulas Teóricas - ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 390 para restaurar os dados. Fabiana Costa Guedes 391 Backup e Restauração Backup e Restauração Tipos de Backup Tipos de Backup

  Um backup normal copia todos os arquivos selecionados e os marca como arquivos que passaram por backup (ou seja, o

  Copy Copy atributo de arquivo é desmarcado).

  Com backups normais, você só precisa da

  Normal Normal Daily Daily cópia mais recente do arquivo ou da fita de backup para restaurar todos os arquivos.

  Geralmente, o backup normal é executado quando você cria um conjunto de backup

  Incremental Incremental Differential Differential pela primeira vez.

  394 Backup e Restauração Tipos de Backup

  O backup dos dados que utiliza uma combinação de backups normal e incremental exige menos espaço de armazenamento e é o método mais rápido. No entanto, a recuperação de arquivos pode ser difícil e lenta porque o conjunto de backup pode estar armazenado em vários discos ou fitas. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 395

  Backup e Restauração Tipos de Backup

  O backup dos dados que utiliza uma combinação dos backups normal e diferencial é mais longo, principalmente se os dados forem alterados com freqüência, mas facilita a restauração de dados, porque o conjunto de backup geralmente é armazenado apenas em alguns discos ou fitas. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  396 Backup e Restauração Tipos de Backup

  ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 397

  Backup Pode ser automatizado Afeta a performance do servidor (deve ser executado após o expediente) É necessário ter o Language Pack correspondente no destino ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes

  Tipos de Armazenamento Armazenamento volátil

  Informações residentes em armazenamento volátil usualmente não resistem a queda do sistema.

  Armazenamento não-volátil

  A informação sobrevive a quedas de sistema. Estão sujeitos a falhas que pode resultar em perda da informação. ECO031 - Banco de Dados - Aulas Teóricas -

  Tipos de Armazenamento Armazenamento estável A informação nunca é perdida.

  O Armazenamento estável é teoricamente impossível de obter, mas pode-se chegar perto dele usando técnicas que tornem extremamente improvável a perda de dados. Implementação do Armazenamento Estável Replicação da informação em vários meios de armazenamento não-voláteis (usualmente discos), com modos possíveis de falhas independentes, a controlar a atualização das informações, garantindo que uma eventual falha durante a transferência de dados não danifique as informações. ECO031 - Banco de Dados - Aulas Teóricas - Fabiana Costa Guedes 400

Novo documento