Aula 11 SQL Seguran a em Banco de Dados
AUTORIZAÇÃO DE
ACESSO
Cleber Rubert
Visões
• Dois objetivos principais das visões:
• Simplificar consultas
• Autorização de acesso (segurança)
• Visão: é um meio de prover ao usuário um “modelo
personalizado” do banco de dados
• É uma relação que não armazena dados, composta dinamicamente por uma consulta que é previamente analisada e otimizada.
View
• Em SQL uma visão é definida como;
Create view nomeDaVisao <expressão de consulta>,
Onde <expressao de consulta> é qualquer expressão de consulta válida em SQL
• Projeto (codProj, tipo, descricao)
• ProjetoEmpregado (codProj, codEmp, dataInicial, dataFinal)
• Empregado (codEmp, nome, categoria, salario)
Create view vAltoEscalao as select codEmp, nome, salario from empregado where salario>10000
• Esta visão terá os atributos especificados na consulta
Tabela base
Visão
• Um SGBD pode dar suporte a um grande número de
visões sobre qualquer conjunto de relações
• O SGBD armazena a definição da visão, mas ela é instanciada quando uma consulta sobre ela for executada
•
• Toda visão pode ser consultada mas nem toda visão pode ser
atualizada
Visão sobre uma relação
• Outra forma
Create view vAltoEscalao (a, b, c) as select codEmp, nome, salario from empregado where salario>10000
• Esta visão terá os atributos a, b, c, que serão instanciados com
os respectivos valores recuperados pela consulta (codEmp, nome, salario)
Visão com várias relações
• Projetos do alto escalão ( visão com várias tabelas)
• Projeto (codProj, tipo, descricao)
• ProjetoEmpregado (codProj, codEmp, dataInicial, dataFinal)
• Empregado (codEmp, nome, categoria, salario)
Create view vProjetoAltoEscalao as select e.codEmp, e.nome, e.salario, p.descricao from empregado e, projeto p, projetoEmpregado pe where e.salario>10000 AND e.codEmp=pe.codEmp AND pe.codProj=p.codProj Consultas em Visões
• Consultas SQL podem ser especificadas sobre a visão select nome from vProjetosAltoEscalao
Where descricao = “Projeto A”
• Uma visão está