Vous êtes sur la page 1sur 42

Centro de

Ciências Agrárias
Departamento de
Computação
UFES

DISCIPLINA DE GERÊNCIA DE BANCO DE


DADOS

Controle de Acesso

Prof.: Leandro Fernandes dos Santos


e-mail: leandro_fsantos@hotmail.com
Segurança da Informação

Entre os diversos aspectos de segurança da informação, pelo


menos três deles são essenciais:

Confidencialidade;

Integridade;

Disponibilidade.

2
Segurança da Informação

Confidencialidade

A confidencialidade está diretamente ligada com a


prevenção de leitura não autorizada de informações.

3
Segurança da Informação

Integridade

A integridade lida com a prevenção, ou pelo menos a


detecção de alteração de dados não autorizada.

4
Segurança da Informação

Disponibilidade

A disponibilidade de um sistema pode ser descrita pela


quantidade de vezes que foi capaz de executar uma
tarefa solicitada, sem falhas, dividido pelo número de
veses que a tarefa foi solicitada.

5
Autenticação de usuários

Como evitar que uma pessoa se passe por outra para


obter acesso privilegiado?

A autenticação de usuários consiste na verificação tanto da


identidade do usuário como dos sistemas e ou processos
que pretende utilizar.

6
Autenticação de usuários

Os sistemas de autenticação de usuários se dividem em


três categorias:

Baseada no conhecimento (o que se sabe):


• Uso de senhas, chave de criptografia, etc.

Baseada na propriedade (o que se tem);


• Objeto que o usuário possui: cartão, chave, etc.

Baseada em características ( o que se é).


• Identificadores biométricos: impressão digital,
reconhecedor de voz, etc.
7
Autenticação de usuários

Controle de Acesso Granular

A granularidade diz respeito ao nível de detalhamento, de


linha e coluna, com o qual se deseja permitir o acesso a
determinado usuário.
Quanto maior for a granularidade, maior será o número de
permissões a serem definidas.

8
Autenticação de usuários

Administrador de Banco de Dados

Um administrador de BD é responsável por várias funções


referentes ao controle do SGBD. Suas principais funções
são:

Definição do esquema;
Definição da estrutura de dados e métodos de acesso;
Esquema e modificação na organização física;
Fornecer métodos de acesso ao sistema;
Especificação de regras de integridade.

9
Autenticação de Usuários

De uma maneira geral, os usuários de BD:

Possuem objetos de banco de dados (Tabelas, Rotinas,


Views, etc.)

Podem conceder ou revogar privilégios em determinados


objetos do banco de dados.

10
Administração de Usuários e Privilégios

Privilégios

Também chamados de autorizações, são concessões


únicas feitas a usuários ou grupos de usuários e que
define a maneira como será acessado determinado
objeto.

11
Administração de Usuários e Privilégios

Privilégios
Através dos privilégios são concedidas autorizações para
modificar ou acessar determinados recursos do SGBD, tais
como:

Consultar uma tabela;


Conexão com SGBD;
Criação de tabelas;
Utilização de procedimentos;
Etc.

12
Administração de Usuários e Privilégios

Os privilégios são divididos em dois tipos:

Privilégios de sistema

Privilégios de objeto

13
Administração de Usuários e Privilégios

Privilégios de sistema

Receber privilégios de sistema dá ao usuário permissão para


criar e manipular objetos no banco de dados, mas não dá
acesso aos objetos que já existem no BD

14
Administração de Usuários e Privilégios

Privilégios de objeto
Privilégios de objeto permitem que uma ação específica
possa ser executada um objeto específico.

Estas ações podem ser:


Comandos DML (seleções, alterações, inserções ou
deleções)

Comandos DDL (criação de índices, novas tabelas, adição


e remoção de atributos, remoção de tabelas, etc.)

15
Administração de Usuários e Privilégios

Privilégios de sistema
Usuários podem receber apenas alguns, todos ou
combinações destes privilégios.

As permissões de DML permitem ações diretamente nos


objetos, e as permissões de DDL dão o direito de fazer
modificações no esquema do banco de dados.

16
Administração de Usuários e Privilégios

Concessão e Revogação de Privilégios

Usuários podem receber o direito de repassar os privilégios


recebidos para outros usuários. Este repasse de privilégio
deve ser tratado com o devido cuidado para que seja
possível revogá-lo no futuro.

17
Administração de Usuários e Privilégios

Concessão e Revogação de Privilégios

Para poder conceder ou remover privilégios em bases de


dados relacionais, a linguagem SQL padrão propõe a
utilização dos comandos de concessão (grant) e revogação
(revoke).

18
Administração de Usuários e Privilégios

Concessão e Revogação de Privilégios

Os comandos padrão do SQL (GRANT e REVOKE) incluem


também os privilégios de:

Selecionar (Select);
Inserir (Insert);
Alterar (Alter);
Apagar (Delete).

19
Administração de Usuários e Privilégios

Concessão e Revogação de Privilégios

Um privilégio sempre é concedido a partir de um DBA. A


passagem de privilégio de um usuário para o outro, pode ser
entendida como um gráfico de autorização.

20
Administração de Usuários e Privilégios

Concessão e Revogação de Privilégios

Com base na figura anterior, se o DBA revogar os privilégios


de Eduardo, João e Maria automaticamente perdem os
privilégios que receberam de Eduardo, porém Maria
continuará com acesso a tabela aluno por conta do privilégio
recebido de Lucia.

21
Administração de Usuários e Privilégios

Controle de Acesso Discricionário

É baseado na concessão e revogação de privilégios. Um


privilégio permite que um usuário acesse um determinado
objeto de dado e execute ações pré-definidas. O usuário que
cria um objeto no banco de dados tem automaticamente
todos os privilégios referentes ao objeto.

22
Administração de Usuários e Privilégios

Controle de Acesso Discricionário

O SGBD monitora como estes privilégios são concedidos ou


revogados, controlando para que apenas usuários
autorizados tenham acesso aos objetos.

Trata-se de um sistema que foi inicialmente desenvolvida


para a linguagem SQL e posteriormente boa parte dos
SGBDs passaram a utilizar variações do mesmo.

23
Administração de Usuários e Privilégios

Controle de Acesso Discricionário

O SGBD mantém o controle ao acesso de dados em apenas


uma direção. O administrador irá conceder privilégios aos
usuários que irão designar as operações permitidas por
estes, como leitura ou alteração por exemplo.

Para o usuário acionar ou efetuar alguma tarefa deverá


possuir os privilégios pertinentes para aquela ação

24
Administração de Usuários e Privilégios

Controle de Acesso Discricionário

Existem dois níveis de atribuição de privilégios:

Em nível de conta:
• Especificam quais são os privilégios que a conta de um
usuário tem, independente das relações desta conta
com o BD.;
Em nível de relação:
• Controla individualmente quais as relações ou visões
poderão ser acessadas no BD

25
Administração de Usuários e Privilégios

Em nível de conta

Privilégios em nível de conta capacitam uma conta a:


Criar schemas (CREATE SCHEMA);
Criar tabelas ou Visões (CREATE TABLE);

Incluem os privilégios de:


Alteração (ALTER);
Exclusão de relações e visões (DROP);
Modificação (MODIFY);
Seleção (SELECT).

26
Administração de Usuários e Privilégios

Em nível de relação

Privilégios em nível de relação aplicam-se as permissões nas


tabelas de base e visões.

Elas especificam relações individuais que cada usuário pode


ter com cada um dos comandos que podem ser aplicados e
em alguns casos, também sobre os privilégios de uma
coluna.

27
Administração de Usuários e Privilégios

Em nível de relação

Estas concessões costumam seguir um modelo conhecido


como matriz de acesso. Em uma matriz, usuários, contas e
programas são representados como sujeitos, e as relações,
registros, colunas e visões representam objetos.

Cada posição na matriz representa o tipo de privilégio que


um sujeito tem sobre um objeto.

28
Controle de acesso no MySQL

Criação de Usuários

Para criarmos usuários no MySQL usamos os seguinte comando:

Onde:
nomeUsuário : Nome a ser dado ao novo usuário;
host: Local no qual este usuário terá acesso. (localhost, IP de
alguma máquina ou ‘%’, que significa acesso de qualquer lugar.)
password: Senha dada ao novo usuário.

29
Controle de acesso no MySQL

Criação de Usuários - EXEMPLO

Para criarmos o usuário ‘harry’ na máquina local ‘localhost’


com a senha ‘root’, o comando necessário seria:

30
Controle de acesso no MySQL

Criação de Usuários

Ao criarmos um novo usuário no MySQL, este é criado sem


permissões. Para visualizarmos as permissões do usuário
criado podemos executar o seguinte comando:

31
Controle de acesso no MySQL

Criação de Usuários

O resultado do comando anterior é mostrado abaixo:

A permissão “USAGE” significa “Sem privilégios”.

32
Controle de acesso no MySQL

Concessão de Privilégios

Para concedermos privilégios a usuários no MySQL usamos o seguinte


comando:

Onde:
Permissões: permissões dadas ao usuário. Ex: select, update, drop, create user
etc.
Banco: base de dados na qual as permissões serão concedidas;
Tabela: tabela da base de dados na qual as permissões serão concedidas;

33
Controle de acesso no MySQL

continuação ...

nomeUsuario: usuário no qual as permissões serão concedidas.


host: local no qual o usuário informado receberá as permissões;
WITH GRANT OPTION: esta cláusula é opcional, caso seja
especificada o usuário também poderá conceder as permissões
que ele recebeu a terceiros.

Obs.: Para um acesso completo a lista de permissões possíveis no


comando GRANT acesse http://bit.ly/1WnyQRy.

34
Controle de acesso no MySQL

Revogação de Privilégios

Para revogarmos privilégios a usuários no MySQL usamos o seguinte comando:

Onde:
Permissões: permissões que queremos revogar. Ex: select, update, etc.
Banco: base de dados na qual as permissões serão revogadas;
Tabela: tabela da base de dados na qual as permissões serão revogadas;

35
Controle de acesso no MySQL

continuação ...

nomeUsuario: usuário no qual as permissões serão


revogadas.
host: local no qual o usuário informado perderá as
permissões;

36
Controle de acesso no MySQL

Concessão de Privilégios - EXEMPLO

Para concedermos permissões de seleção, atualização


deleção ao usuário “harry” no banco “bd01” e tabela de
“clientes”, usaríamos o seguinte comando:

37
Controle de acesso no MySQL

Revogação de Privilégios - EXEMPLO

Para revogarmos a permissão de seleção do usuário “harry”


no banco “bd01” e tabela de “clientes”, usaríamos o seguinte
comando:

38
Controle de acesso no MySQL

continuação

Para conceder todos os privilégios ao “harry” no banco “bd01”


na tabela de “clientes”, usaríamos o seguinte comando:

39
Controle de acesso no MySQL

Concessão de Privilégios

Após a execução subsequente de vários comandos


relacionados a privilégios, é necessário executar o comando:

Este comando faz com que o MySQL recarregue a tabela de


usuários na sessão atual, fazendo com que as permissões
concedidas seja atualizadas de forma correta.

40
Controle de acesso no MySQL

Deleção de usuário

Para deletar um usuário criado no MySQL usamos o seguinte


comando.

Onde:
nomeUsuario: Nome do usuário a ser deletado;
Host: local onde o usuário será deletado.

41
Referências
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de
Dados. 5ed, Ed. Campus, 2006.
ELMASRI, R,; NAVATHE, S. Sistemas de Banco de Dados. 6ed, Ed.
Pearson, 2011.
Digital Ocean - How To Create a New User and Grant Permissions in
MySQL Disponível em: https://www.digitalocean.com/ community/tutorials/
how-to-create-a-new-user-and-grant-permissions-in-mysql
Acesso em: 06. Abr. 2016.

MySQL Reference Manual - GRANT Syntax. Disponível em:


https://dev.mysql.com/doc/refman/5.7/en/grant.html
Acesso em: 11 Abr. 2016.

DOS SANTOS, D. L. Controle de acesso em Sistemas Gerenciadores de


Banco de Dados. UTFPR – Monografia. Curitiba 2014.

42

Vous aimerez peut-être aussi