160 likes | 279 Views
Sumário Exploração de bases de dados Segurança Integridade. Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808. Email: gtd@fe.up.pt URL: http://www.fe.up.pt. Segurança e integridade. Protecção dos dados direito à privacidade
E N D
Sumário Exploração de bases de dados Segurança Integridade Gabriel David FEUP - Rua dos Bragas, 4050-123 Porto - PORTUGAL Tel. 351-222041842 - Fax: 351-222000808 Email: gtd@fe.up.pt URL: http://www.fe.up.pt
Segurança e integridade • Protecção dos dados • direito à privacidade • direito de propriedade • direito à informação • Segurança • protecção da BD contra a consulta, alteração ou destruição não autorizadas • ilegalidade • Integridade • manutenção da correcção dos dados, quer sob o aspecto da validade quer da consistência • coerência
Segurança - sobre o utilizador • Normas de acesso ao centro de computação, arquivos de dados e terminais • Código de identificação e password • Num grande SGBD o processo das autorizações deve ser mais selectivo e flexível
Exemplo de acesso • Dados na BD de uma empresa • EMPREGADO( nr, nome, morada, dept, salário, avaliação) • Tipos de acesso desejáveis • acesso livre a toda a relação, para todas as operações • acesso apenas à própria informação, sendo permitida a alteração de apenas alguns valores • acesso interdito • acesso aos atributos nr, nome e salário, podendo alterar salário, mas apenas entre as 9H e as 17H, num terminal do Serviço de Pessoal • possibilidade de aplicação de operadores estatísticos ao atributo salário, mas com interdição de consulta de registos individuais • autorização de consulta a toda a relação, mas com possibilidade de alteração apenas do atributo avaliação dos empregados que pertençam ao departamento de que o utilizador é director
Perfis • Excesso de restrições de acesso implica sobrecarga no SGBD • verificação de autorização afecta todos os acessos • Habitualmente definem-se perfis de utilização aos quais se associam os utilizadores • fundamental o recurso a vistas que funcionam como tabelas virtuais e fornecem um nível de independência dos dados • possibilidade de definição de procedimentos de autorização ou de restrições específicos para um utilizador que se combinem com os genéricos e permitam controlo fino sobre o acesso • para além da segurança, criar um ambiente agradável ao utilizador, filtrando o irrelevante • uso de sinónimos (CREATE SYNONYM x FOR user.tabela)
Instrução SQL GRANT • Esta instrução define o tipo de acesso dos utilizadores aos objectos da BD que não criaram • o criador de um objecto tem habitualmente todos os direitos sobre ele
Privilégios de objectos • Exemplo • GRANT UPDATE (telefone, salario) ON intranet.tabEmpregados TO chefePessoal WITH GRANT OPTION
Papéis • Os papéis funcionam como conjuntos de privilégios de objectos ou de sistema que se podem conceder em bloco a um utilizador • estruturam a definição dos perfis • podem conceder-se (sub)papéis a papéis
Privilégios de sistema • Exemplos de privilégios • CREATE SESSION - ligar à BD • ALTER SESSION - mudar parâmetros da sessão • CREATE ANY TABLE - criar tabelas • DELETE ANY TABLE • DROP ANY TABLE • CREATE USER • CREATE VIEW • privilégio pode ser dado a um utilizador directamente ou através de um papel
Segurança - sobre os dados • Senhas para acesso a ficheiros ou atributos, dependendo da operação a efectuar • estabelecimento de combinações sensíveis de características dos dados, associadas a condições a satisfazer pelo utilizador • programa de arbitragem de alta prioridade e bem protegido para autorizar cada acesso
BD estatísticas • Pretende-se obter informações de síntese sobre grandes subconjuntos de dentidades, sem ter acesso a dados individuais • recenseamentos • BD clínicas • Exemplos • “percentagem de doentes cancerígenos fumadores?” SIM • “o senhor Silva tem um cancro?” NÃO • Regra • impedir impressão de resultados derivados de pequenos conjuntos de dados
Exemplo • Pergunta select salario from emp where nome=‘Antão’ • resultado vetado, dimensão(resultado) < n • Pergunta k select avg(salario) Mx, count(*) Nx from emp where dept=‘Manutenção’ -- Nx > mínimo • Pergunta k+1 select avg(salario) My, count(*) Ny from emp where dept=‘Manutenção’ or nome=‘Antão’ -- Ny > mínimo • salário(Antão) = Ny My - Nx Mx • Regra refinada • impedir respostas com intersecções muito grandes com perguntas anteriores (memorizar k perguntas)
4 6 1 6 5 IRS sexo carro distrito localidade profissão Identificação parcial • Compromisso • grau de segurança/sobrecarga • Respostas deliberadamente erradas a perguntas inválidas • Outra abordagem - pesquisa por identificação parcial • registos com a média dos rendimentos de um pequeno grupo de cidadãos com características semelhantes • chave composta • pergunta só pode especificar 12 bits (menor relação: 222-212 = 1024) • IRS dos homens de Gaia, Porto SIM (11 bits) • IRS dos médicos de Aveiro com Rover NÃO (15 bits)
Segurança - sobre infiltradores • Vão para além do uso “normal” do sistema • curto-circuito da aplicação e/ou do SGBD • intercepção de mensagens nas linhas de comunicação • roubo de um disco • Contra-medidas • encriptação das mensagens • encriptação das partes críticas da BD • criptografia pode ser implementada em HW ou SW • Princípio dos sistemas de segurança • situar o “custo” da violação dos dados ao mesmo nível do benefício obtido • confidencialidade + integridade + disponibilidade
Integridade • Protecção quanto a operações inválidas • restrições de integridade são extensões à LDD • fazem parte do modelo de dados • associadas a conjuntos de dados e certas operações de manipulação • escritas na LMD ou numa linguagem hospedeira • validação • gamas de valores (restrições CHECK) • integridade das entidades (chave primária sem valores nulos) • integridade referencial (inserção/apagamento) • consistência • dependências funcionais (3NF + chave) • valores calculados
Recomendações • Bom projecto • procedimentos específicos para cada operação • restrições, triggers • rotinas de detecção de erros • Bom senso!