• Nenhum resultado encontrado

Conceitos. Considerações Gerais. Autorização. Autorização no SQL Server. Autorização 16/06/2009

N/A
N/A
Protected

Academic year: 2021

Share "Conceitos. Considerações Gerais. Autorização. Autorização no SQL Server. Autorização 16/06/2009"

Copied!
5
0
0

Texto

(1)

Banco de Dados II URI-FW

Conceitos

Segurança ≠ Integridade

Segurança refere-se à proteção de dados contra a divulgação, alteração ou destruição não autorizadas. Garante que usuários têm permissão para fazer o que

estiverem tentando.

Integridade refere-se à precisão ou validade dos dados.

Garante que as coisas que estão tentando fazer sãocorretas.

Considerações Gerais

• Para proteger um banco de dados devemos

tomar medidas de segurança em vários níveis:

–Físico: A sala do computador (servidor) ou terminal (cliente) devem

estar protegidas contra intrusos.

–Humano: Os usuários devem ser cuidadosamente autorizados para reduzir a chance de qualquer fornecimento de acesso a um intruso em troca de suborno ou outros favores.

–Sistema Operacional: A debilidade na segurança do SO pode servir como meio de acesso não autorizado ao BD.

–Rede: A segurança em nível de SW de rede, para BDs que permitem acesso remoto, é tão importante quanto a segurança física. –Sistema de BD: Alguns usuários de sistemas de BD devem ter

autorização de acesso somente a uma porção limitada do BD. É responsabilidade do sistema de BD garantir que essas restrições de acesso não sejam violadas.

Autorização

Um usuário pode ter várias formas de autorização

sobre partes do banco de dados. Dentre elas

estão as seguintes:

–Autorização read: permite a leitura, mas não modificações de dados. –Autorização insert: permite a inserção de novos dados, mas não a

modificação de dados existentes.

–Autorização update: permite a modificação, mas não a remoção de dados.

–Autorização delete: permite a remoção de dados.

• Um usuário pode receber todos, nenhum ou uma

combinação desses tipos de autorização.

Autorização

Além das formas de autorização de acesso

aos dados, pode ser concedida

autorização a um usuário para modificar

esquemas do banco de dados:

–Autorização index: permite a criação e remoção de índices.

–Autorização resource: permite a criação de novas relações (tabelas).

–Autorização alteration: permite a adição ou remoção de atributos em uma relação (tabela)

–Autorização drop: permite a remoção de relações (tabelas).

Autorização no SQL Server

Os recursos de segurança do SQL Server permitem

determinar:

Quais usuários podem usar o SQL Server.

Quais usuários podem acessar cada banco de dados.

As permissões de acesso para cada objeto de banco de dados e para cada usuário.

As permissões de acesso para cada comando SQL em cada banco de dados, para cada usuário.

(2)

Autorização no SQL Server

 Existem quatro barreiras para que os usuários possam acessar

dados em um servidor SQL Server:

 O sistema operacional de rede; o usuário deve efetuar logon na rede.  A autenticação do SQL Server; o usuário deve ter uma conta no SQL

Server.

 A autenticação de banco de dados; o ID do usuário deve existir em uma tabela de sistema do banco de dados (mais especificamente, a tabela sysusers)

 A autenticação de objetos; o usuário deve ter permissões para acessar qualquer objeto (tabelas, visões, entre outros).

Modos de Segurança SQL Server

Modo de segurança do Windows Recursos avançados de segurança Adicionar grupos como uma conta. Acesso rápido.

Modo de Segurança Mista

Clientes não-Windows e usando browser podem usar esse modo para conectar-se.

Camada adicional de segurança sobre o Windows

Autorização

A última forma de autorização é aquela

dada ao administrador do banco de

dados (DBA).

–O nível de autorização dado ao DBA é análoga

aquele fornecido a um super-usuário (root) de um sistema operacional.

– Controle total sobre o sistema de banco de dados.

Visões (Views)

Visão - é uma forma diferente de ver uma relação (escondendo dados que não precisam ser vistos ou visualizando os dados resultantes de uma

determinada consulta).

• Embora possa ser negado o acesso direto de um usuário a uma relação, pode ser permitido ao usuário acessar parte daquela relação por meio de uma visão.

Exemplo

 Sistema Bancário:

Agência= (nome_ag, cidade_ag, fundos).

Conta= (nome_ag, número_conta, saldo)

Depositante= (nome_cli, número_conta)

 Considere um caixa que precise dos nomes de todos os clientes que têm conta em cada agência. Porém, este caixa não está autorizado a ver as demais informações da conta do cliente.

– Desta forma, o acesso à tabela CONTA deve ser negado para o caixa.

– O acesso deve ser concedido através de uma visão que fornece somente as informações necessárias.

Exemplo

Em SQL a visão pode ser definida como:

create view cliente_agência as (select nome_ag, nome_cli from depositante, conta

where depositante.número_conta = conta.número_conta)

• O caixa poderá, então, fazer a seguinte

consulta:

(3)

Autorização sobre Visões

O usuário que cria uma visão recebe somente os

privilégios que não fornecem autorização adicional além daquelas que ele já possui.

• Exemplo: um usuário não pode ter a autorização de updatesobre uma visão caso ele não tenha a autorização de updatesobre as relações usadas na visão.

• No exemplo anterior, o criador da visão deve ter autorização readsobre as duas relações utilizadas.

Especificação de Segurança em SQL

O padrão SQL possui comandos para

conceder e revogar privilégios.

O padrão SQL inclui os privilégios delete,insert, select

(read) e update.

O padrão SQL também inclui um privilégioreferences

que restringe a declaração de chaves estrangeiras pelo usuário quando cria relações.

Permite que usuários criem chaves estrangeiras que se refiram

a outras relações.

Especificação de Segurança em SQL

A declaração

grant

é usada para conferir

autorização.

Forma básica:

grant <lista de privilégios> on <nome da relação ou nome da

visão> to <lista de usuários>

Exemplos:

grant select on agência to U1,U2,U3

Concede aos usuários U1,U2,U3 a autorização select sobre a relação agência.  Grant update (nome_cli) on depositante to U1,U2,U3

A autorização update pode tanto ser conferida a todos os atributos da relação

como a apenas um deles

Especificação de Segurança em SQL

Por default, não é permitido a um usuário que recebeu um privilégio em SQL conceder esse privilégio a outro usuário.

• Se desejamos conceder um privilégio e permitir ao receptor passar esse privilégio a outros usuários, anexamos a condição with grant optionao comando grant apropriado. • Exemplo:

– grant select on agência to U1 with grant option • Pode ser utilizado o privilégio all privileges, para ser

utilizadas como forma abreviada para todos os privilégios e public, da mesma forma, para todos os usuários.

Especificação de Segurança em SQL

A declaração

revoke

é usado para

revogar uma autorização.

Forma básica:

 revoke <lista de privilégios> on <nome da relação ou

visão> from <lista de usuário> [restrict | cascate]

Exemplos:

revoke select on agência from U1, U2, U3 cascade

revoke update (nome_cli) on depositante from U1, U2, U3

Especificação de Segurança em SQL

As opções

cascade

e

restrict

:

A revogação de um privilégio concedido a

um usuário pode fazer com que outros

usuários também percam esse privilégio.

Para que isto aconteça utiliza-se a opção cascade.  revoke select on agência from U1, U2, U3 cascade

Para impedir a revogação em cascata utiliza-se a opção restrict. Neste caso, haverá a emissão de uma mensagem de erro caso haja qualquer revogação em cascata, e a ação de revogar não será implementada.

(4)

Papéis (Roles)

Na sua essência, um papel [role] é um grupo de usuários que têm necessidades semelhantes de acesso ao SQL Server.

Diferentes de papéis do SQL Server, incluindo os seguintes:

Papéis predefinidos de servidor

Papéis predefinidos de bancos de dados roles O papel público

Papéis personalizados de bancos de dados

Criptografia

As diversas medidas que um sistema de banco de dados utiliza para impedir o acesso de intrusos às informações pode não ser suficiente.

Solução:

Criptografar os dados.

(Substituição de cada caracter pelo próximo caracter do alfabeto)

teste Algoritmo de

Criptografia uftuf

Criptografia

Uma boa técnica de criptografia tem as

seguintes propriedades:

 É relativamente simples para os usuários autorizados codificar e decifrar os dados.

 O esquema de criptografia não depende do segredo do algoritmo, mas de um parâmetro do algoritmo chamado chave de criptografia.  É extremamente difícil para um intruso determinar a chave de

criptografia.

Existem 3 tipos de esquemas criptográficos.

 Simétricos

 Assimétricos  Híbridos

Criptografia Simétrica

Chave de codificação = chave de

decodificação.

Deve-se ter cuidado ao passar a chave para o receptor. (intrusos não devem interceptá-la)

Esse esquema tem como principal vantagem a performance. Um exemplo de algoritmo usando esse esquema é o DES –

Data

Encryption Standard, desenvolvido na década de 70 pela IBM.

Criptografia Simétrica

Criptografia Assimétrica

Chave de Codificação ≠ Chave de decodificação

Cada participante possui um par de chaves (uma pública e uma privada)

Todos disponibilizam suas chaves públicas e guardam suas chaves privadas.

Quando José quer mandar uma mensagem para Maria, codifica-a com a chave pública de Maria.

Desta forma, só Maria terá a chave privada para decifrar a mensagem.

Vantagem: Maior segurança

Desvantagem: Menor desempenho.

Um exemplo de algoritmo usando esse esquema é o RSA -desenvolvido por Rivest, Shamir and Adleman no início da década de 80

(5)

Criptografia Assimétrica

Criptografia Híbrida

Esquemas simétricos e assimétricos são

utilizados em conjunto.

A chave simétrica é usada para codificar a mensagem.

A chave pública do receptor da mensagem é usada para codificar a chave simétrica.

Vantagens

Melhor performance Maior segurança.

Exemplo

O protocolo SET (Secure Electronic Transaction) utiliza o esquema híbrido de criptografia.

Exercício

1. Criar uma base de dados com as tabelas abaixo: - Agência= (NumAg, Cidade)

-Conta= (NumA, NumConta , CodCli, saldo) -Cliente = (CodCli, NomeCli)

2. Inserir Dados nas tabelas

3. Criar uma View que mostre a cidade e o nome do cliente. 4. Criar um usuário com o seu nome

5. Setar a permissão de select na View criada para o novo usuário .

6. Fechar o SQL Server, e fazer o login com o novo usuário 7. Fazer um Select que mostre os clientes Cadastrados 8. Fazer um Select na View Criada

Referências

Documentos relacionados

Comete crime de concorrência desleal quem: (…) XI - divulga, explora ou utiliza-se, sem autorização, de conhecimentos, informações ou dados confidenciais, utilizáveis na

Este trabalho descreve a automação de grupos geradores de emergência e a lógica desenvolvida utilizando a unidade de supervisão de corrente alternada (USCA) e a

Busca-se o desenvolvimento de técnicas para aplicação de veículos aéreos não tripulados (VANTs ou DRONE), na inspeção de linhas, subestações, alimentadores e redes

Assim esse projeto teve como objetivo observar e chamar a atenção para questões de gênero dentro das aulas de Educação Física, proporcionar uma `reflexão a respeito

a) As receitas obtidas foram utilizadas totalmente em Gratuidades, para custeios com assistência social, aplicadas no Serviço de Proteção Social Especial de Alta Complexidade,

A utilização das mídias sociais durante a jornada de trabalho pode influenciar nas horas trabalhadas de forma negativa/improdutiva; por meio dos elementos que

O administrador do banco de dados também só pode acessar um objeto específico caso o administrador de segurança tenha dado autorização explícita a esse acesso por meio de

(Autographa gamma ,Agrotis ipisilon, Agrotis segetum , Helicoverpa armigera ,Spodoptera littoralis). tripes (Thrips sp) CHICÓRIA