computadores outros -ao

Propaganda
Departamento: Departamento de Engenharias e Ciência da Computação
Curso: Ciência da Computação
Semestre: 4o Ano: 2006
Disciplina: Banco de Dados II
Créditos: 04
Professora: Cristina Paludo Santos
Segurança de Dados - Resumo
1.
Segurança de Dados:
Idéia básica: Os dados armazenados no banco de dados precisam ser protegidos contra
acessos não autorizados, destruição ou alteração intencional.
Objetivo principal: Utilizar mecanismos de resguardo contra acessos não-autorizados no
BD.
1.1
Violações de Segurança
Classificação perda de consistência do banco de dados
- Intencional (malicioso)
- Acidental – tratamento facilitado
Perda Acidental:
- Quebras durante o processamento de transações;
- Anomalias causadas por acesso concorrente no BD;
- Anomalias causadas pela distribuição de dados sobre diversos computadores;
- Erro lógico que viola a suposição de que as transações preservem as restrições de
consistência do BD.
Perda Intencional:
- Leitura não autorizada de dados;
- Modificação não autorizada de dados;
- Destruição não autorizada de dados;
Níveis para adoção de medidas de segurança:
- Físico: local onde os sistemas de computador estão localizados;
- Humano: acesso a máquina;
- Sistema de Banco de Dados: limitar o acesso dos usuários aos dados armazenados;
1.2
Autorização
- Sistema de Autorização: mecanismo que permite conceder ou revogar privilégios de acesso
para os usuários do banco de dados.
- Formas de Autorização em partes do banco de dados:
- Leitura: SIM leitura / NÃO modificação;
- Inserção: SIM inserção / NÃO modificação;
- Atualização: SIM modificação / NÃO remoção;
- Remoção: SIM remoção
Segurança de dados – Banco de Dados II
1
- Comandos SQL utilizados pelo sistema de autorização:
- Para CONCEDER privilégios de acessos é usada a instrução GRANT:
GRANT <lista de privilégios> ON <nome da tabela ou visão> TO <lista de usuários>;
- A lista de privilégios permite especificar os seguintes tipos de privilégios:
- Select: especifica que o usuário pode ler os dados das tabelas ou visões listadas;
- Delete: especifica que o usuário pode excluir linhas das tabelas ou visões listadas;
- Insert: especifica que o usuário pode incluir linhas das tabelas ou visões listadas;
- Update: especifica que o usuário pode alterar linhas das tabelas ou visões listadas.
Este privilégio é atribuído a colunas especificadas: GRANT UPDATE (saldo) ON
deposito TO u1, u2;
- Expand: especifica que o usuário pode acrescentar um campo a tabela;
- References: especifica que o usuário pode criar tabelas que contêm uma chave
estrangeira. Também é atribuído a colunas especificas: GRANT REFERENCES
(código) ON depto TO u1, u2;
- Um usuário não pode conceder os privilégios recebidos a outros usuários, a menos que
possua autorização para tal:
GRANT Select ON Depto TO Usuário_1, Usuário_2 WITH GRANT OPTION
- Para REVOGAR privilégios de acessos é usada a instrução REVOKE:
REVOKE <lista de privilégios> ON <nome da tabela ou visão> FROM <lista de usuários>;
- Quando um usuário perde um privilégio, todos os usuários que dele receberam este
privilégio também o perde.
1.2.1 Grafos de Concessão de Privilégios
Pode-se permitir a um usuário conceder a outros usuários alguma forma de autorização a ele
concedida. No entanto, devemos ser cuidadosos sobre como a autorização pode ser
repassada entre os usuários, de modo a garantir que tal autorização possa ser revogada no
futuro.
Exemplo:
Considere a concessão de autorização de atualização sobre a relação empréstimo.
1. O DBA concede a autorização de atualização a U1, U2 e U3, que podem repassar a
sua autorização para ouros usuários;
2. A passagem de autorização pode ser representada por um grafo de autorizações da
seguinte maneira:
U1
DB
A
U2
U3
Segurança de dados – Banco de Dados II
2
-
Os nodos do grafo são os usuários
A raiz do grafo é o DBA
Uma reta Ui  Uj indica que o usuário Ui concedeu uma autorização para o usuário
Uj
Todas as arestas de um grafo devem ter um caminho original a partir do DBA:
U1
U4
DB
U2
A
U5
U3
3. Suponhamos que o DBA revogue a autorização de U1;
4. U4 teve autorização concedida por U1, sua autorização será revogada também;
5. U5 teve autorização concedida por U1 e U2, portanto não perde a autorização
concedida por U2;
6. Ciclos de autorização devem ser prevenidos, por exemplo:
a. DBA autoriza U2 e U3;
b. U2 autoriza U3 que por sua vez autoriza U2;
c. O DBA revoga a autorização de U2, mas este continua com a autorização
através de U3
U2
U2
DB
DB
A
A
U3
U3
Obs.: O DBA deve revogar U3 para quebrar o ciclo;
1.3
Visão
- Somente uma porção do BD é vista pelo usuário ou aplicação;
- Tabela derivada a partir das tabelas do BD;
- Tabela virtual, isto é, transparente para usuários e aplicações;
- Visões são manipuladas como tabelas normais do BD;
- Definição em SQL:
CREATE VIEW <nome da visão> AS <expressão de consulta>
- Operações DML sobre visões:
- São executadas na(s) tabela(s) base
- Exemplos:
Select *
Select codp, nome, idade
From PacCâncer
From Pacientes
Where de
paciente
‘J%’;
Segurança
dados –like
Banco
de Dados II
Where problema = ‘Câncer’ and nome like ‘J%’;
3
Delete from PacCâncer
Delete from Pacientes
Where idade > 90;
where problema = ‘Câncer’ and idade > 90;
- Considerações importantes:
- Toda visão é passível de consulta
- Nem toda a visão é passível de atualização.
ATOR (CodAtor, NomeAtor, Nacionalidade, Sexo, Idade, IndicacaoOscar, Oscar)
FILME (CodFilme, NomeFilme, AnoFilme, Orçamento, Tempo)
PERSONAGEM (CodFilme, CodAtor, Personagem, Cachê)
Apresente o comando SQL para criar as seguintes visões:
1. Uma visão que apresente apenas o nome do atores e a quantidade de oscar que
possui.
2. Uma visão que apresente o nome dos atores e o nome dos filmes em que atuaram.
3. Uma visão que apresente o nome dos atores, personagem que representou em cada
filme e o cachê pago, mas apenas para os atores com idade maior do 40 anos.
Segurança de dados – Banco de Dados II
4
Download