Slide 2 - Controle de Acesso

40 Pages • 2,033 Words • PDF • 623 KB
Uploaded at 2021-09-24 12:07

This document was submitted by our user and they confirm that they have the consent to share it. Assuming that you are writer or own the copyright of this document, report to us by using this DMCA report button.


Instituto Federal da Bahia – IFBA Campus Vitória da Conquista

Controle de Acesso Prof. Me. Pablo Freire Matos [email protected] Slides baseados no material elaborado pelo professor: Luciano Calderoni

Objetivo Sistema de Banco de Dados (SBD) 

Armazenar os dados de forma organizada



Permitir a recuperação de dados de modo rápido e confiável



Permitir o acesso as informações somente aos usuários devidamente autorizados

Controle de Acesso

2

Controle de Acesso 

SBD existem diversos usuários e aplicações 

 





Alguns podem apenas consultar os dados Outros podem consultar e modificar todos os dados Outros podem consultar todos os dados e inserir alguns dentre outros

Controle de acesso 

 

Garante que os usuários executam somente as operações para as quais estão autorizados Garantem a segurança dos dados armazenados no BD Todo SGBD fornece um mecanismo de definição de controle de acesso Controle de Acesso

3

Controle de Acesso em SBD Sistema Gerenciador de Banco de Dados (SGBD) Banco de Dados

Usuários Finais

Hardware e Software Controle de Acesso

4

Controle de Acesso O DBA define (cria) os usuários que terão acesso ao BD e suas senhas

1.





A criação dos usuários depende do SGBD Não existe um mecanismo padrão

2.

A seguir o DBA define as permissões (autorizações) de cada usuário

3.

O SGBD garante que as permissões sejam cumpridas durante a execução das operações Controle de Acesso

5

Criando Usuário no MySQL 

Sintaxe



Exemplos

CREATE USER {nome_usuário} IDENTIFIED BY {senha};

CREATE USER teste3 IDENTIFIED BY ‘123’; CREATE USER teste2@localhost IDENTIFIED BY ‘123’; O usuário logado deve ser o DBA Utilizar: Banco de Dados mysql e tabela user Atenção: BD mysql é case-sensitive Controle de Acesso

6

Excluindo Usuário no MySQL 

Exemplo:

DELETE FROM user WHERE user like ‘teste%’;

Controle de Acesso

7

Recuperando Usuário no MySQL

Controle de Acesso

8

Identificar os Privilégios de um Usuário SHOW GRANTS FOR root@localhost; SHOW GRANTS FOR pablo;

Limpar ou Atualizar os Privilégios FLUSH PRIVILEGES;

Controle de Acesso

9

Controle de Acesso em SQL 

Mecanismo de definição de permissões de acesso segundo a SQL-ANSI 



Apenas atribuição de permissões, não criação

Sintaxe Concessão e Revogação:

GRANT ON TO ; REVOKE ON FROM ; DML, DDL, ... ALL

Tabela onde será concedida ou revogada a permissão Controle de Acesso

Usuário para o qual será concedida ou revogada a permissão

10

Comando GRANT 

Sintaxe Detalhada

GRANT {ALL [PRIVILEGES]| USAGE | lista_de_privilégios} ON { . | *.* | .* } TO {lista_usuários} [WITH GRANT OPTION]

Controle de Acesso

11

Lista de Privilégios 

DML 



DDL 

 



INSERT, UPDATE, DELETE, SELECT

CREATE, DROP, ALTER

Show databases Shutdown Replication Slave... Controle de Acesso

12

Lista de Privilégios – MySQL (1/3) Privilégio

Descrição

ALL/ALL PRIVILEGES

Todos os privilégios

ALTER ROUTINE

Permite alterar e excluir Stored Procedures/Functions

CREATE ROUTINE

Perimite criar Stored Procedures/Functions

CREATE TEMPORARY TABLES Permite a criação de tabelas temporárias CREATE USER

Permite criar e gerencia usuários

CREATE VIEW

Permite criar visões

EVENT

Permite criar Event Schedulers

EXECUTE

Permite executar Stored Procedures

MILANI, André. MySQL: Guia do Programador. São Paulo: Novatec, 2006. Controle de Acesso

13

Lista de Privilégios – MySQL (2/3) Privilégio

Descrição

FILE

Permite ler e escrever arquivos no sistema (e.g., comando Load Data)

GRANT

Permite conceder privilégios para outros usuários

INDEX

Permite o gerenciamento de índices

LOCL TABLES

Permite bloquear tabelas para uso

PROCESS

Permite visualizar e finalizar processos do MySQL

RELOAD

Permite recarregar bancos de dados

REPLICATION CLIENT

Permite solicitar replicação

MILANI, André. MySQL: Guia do Programador. São Paulo: Novatec, 2006. Controle de Acesso

14

Lista de Privilégios – MySQL (3/3) Privilégio Descrição REPLICATION SLAVE Permite replicar as informações SHOW DATABASES

Permite visualizar a estrutura de todos os bancos de dados

SHOW VIEW

Permite visualizar os códigos de criação de visões

SHUTDOWN

Permite desativar o servidor MySQL

SUPER

Permite configurar os dados do servidor Master no caso de Replicação, utilizar o comando Kill para interromper processos, excluir logs e ultrapassar o limite de conexões máximas

TRIGGER

Permite criar e gerenciar triggers

USAGE

Sem privilégios

MILANI, André. MySQL: Guia do Programador. São Paulo: Novatec, 2006. Manual do MySQL. Disponível em: http://downloads.mysql.com/docs/refman-5.7-en.pdf Controle de Acesso

15

Comando REVOKE 

Sintaxe Detalhada

REVOKE [GRANT OPTION] {lista_privilégios | ALL} ON { . | *.* | .* } FROM {lista_usuários}

Controle de Acesso

16

Exemplo 1 GRANT SELECT ON Funcionario TO Teste;

GRANT UPDATE (nome, salario) ON Funcionario TO Paulo, Andre; Concede permissão de atualização nos campos nome e salário da tabela Funcionário aos usuários Paulo e André (sem especificar as colunas, indica todas)

Concede permissão de consulta na tabela Funcionário ao usuário Teste

Funcionario codFunc

nome

salario

1000

Flávio

2500,25

1548

Valéria

3500,55

3001

Luciano

1420,63

Controle de Acesso

17

Exemplo 2 GRANT ALL ON Funcionario TO Teste;

Concede todas as permissões (ALL) na tabela Funcionário ao usuário Teste

Revoga a permissão de atualização de todas as colunas na tabela Funcionário do usuário André (pode indicar nomes das colunas)

REVOKE UPDATE ON Funcionario FROM Andre;

Funcionario REVOKE ALL ON Funcionario FROM Teste;

codFunc

Revoga todas as permissões (ALL) na tabela Funcionário do usuário Teste Controle de Acesso

nome

salario

1000

Flávio

2500,25

1548

Valéria

3500,55

3001

Luciano

1420,63 18

Propagação de Privilégios 

Proprietário de uma relação   



Criador de uma relação Possui todos os privilégios sobre a relação Tem a capacidade de conceder a (e de revogar de) outros usuários privilégios sobre a relação

Cláusula WITH GRANT OPTION 

Permite que o usuário que acabou de receber privilégios sobre a relação conceda esses privilégios a outros usuários Controle de Acesso

19

Exemplo 

DBA: GRANT SELECT

Concedendo privilégios 

U1: GRANT SELECT ON Funcionario TO U2, U3 WITH GRANT OPTION;



U1

U2: GRANT SELECT ON Funcionario TO U4 WITH GRANT OPTION;



U3

U2

U4: GRANT SELECT ON Funcionario TO U5;



ON Funcionario TO U1 WITH GRANT OPTION; 1. \ DBA

O que acontece quando U1 revoga os privilégios de U2? Controle de Acesso

U4

U5 20

Controle de Acesso e Visões 

E para permitir que o usuário Paulo possa apenas consultar os campos codFunc e nome da tabela Funcionário? GRANT SELECT (codFunc, nome) ON Funcionario TO paulo;

Funciona em MySQL! 

Outra maneira de selecionar os campos das tabelas é utilizando? 

Visões! Controle de Acesso

21

Controle de Acesso e Visões 

A combinação controle de acesso + visões permite um maior refinamento ao conceder e revogar permissões

CREATE VIEW v_Funcionario AS SELECT codFunc, nome FROM Funcionario;

Controle de Acesso

GRANT SELECT ON v_Funcionario TO Paulo;

22

Exercício 1 

Cria os seguintes usuários no SGBD MySQL: 

Pedro, Vania e Carlos

Controle de Acesso

23

Exercício 1 

Use GRANT e REVOKE para 1. 2. 3.

4.

5.

6.

Conceder privilégio de seleção ao usuário Pedro. Revogar o privilégio de seleção de Pedro. Conceder os privilégios de recuperação e inserção ao usuário Carlos. Conceder os privilégios de atualização de somente o nome do funcionário ao usuário Vania. Conceder todos os privilégios a todos os três usuários. Revogar todos os privilégios de todos os três usuários. Funcionario codFunc

nome

salario

cargo

1000

Flávio

2500,25 gerente

1548

Valéria

3500,55 analista

3001

Luciano 1420,63 secretária

Controle de Acesso

24

1) Conceder privilégio de seleção ao usuário Pedro. GRANT SELECT ON Funcionario TO Pedro;

2) Revogar o privilégio de seleção de Pedro. REVOKE SELECT ON Funcionario FROM Pedro;

Controle de Acesso

25

3) Conceder os privilégios de recuperação e inserção ao usuário Carlos. GRANT SELECT, INSERT ON Funcionario TO Carlos;

4) Conceder os privilégios de atualização de somente o nome do funcionário ao usuário Vania. GRANT UPDATE (nome) ON Funcionario TO Vania; Controle de Acesso

26

5) Conceder todos os privilégios a todos os três usuários. GRANT ALL ON Funcionario TO Pedro, Carlos, Vania;

6) Revogar todos os privilégios de todos os três usuários. REVOKE ALL ON Funcionario FROM Pedro, Carlos, Vania; Controle de Acesso

27

Exercício 2 

Considere o usuário root como o DBA do banco de dados “empresax”. Este banco terá os seguintes usuários: 

usuário Jorge: DBA



usuário Fabio: desenvolvedor que pode manipular, alterar e excluir a estrutura do BD



usuário Fabiana: usuário final que precisa apenas manipular os dados armazenados Conceder privilégios para estes três usuários. OBS: Criar o usuário na hora da concessão. Controle de Acesso

28

Usuário Jorge: DBA

GRANT ALL PRIVILEGES ON empresax.* TO Jorge IDENTIFIED BY ‘123’;

Controle de Acesso

29

Usuário Fabio: desenvolvedor que pode manipular, alterar e excluir a estrutura do BD GRANT SELECT, INSERT, UPDATE, DELETE, DROP, ALTER ON empresax.* TO Fabio@localhost IDENTIFIED BY ‘123’;

Controle de Acesso

30

Usuário Fabiana: usuário final que precisa apenas manipular os dados armazenados GRANT SELECT, INSERT, UPDATE, DELETE ON empresax.* TO Fabiana@% IDENTIFIED BY ‘123’;

O curinga '%' indica que o usuário pode se conectar de qualquer host Controle de Acesso

31

Exercício 3

Funcionario codFunc





Considere a mesma relação do exercício anterior

nome

salario

cargo

1000

Flávio

2500,25 gerente

1548

Valéria

3500,55 analista

3001

Luciano 1420,63 secretária

Use o comando WITH GRANT OPTION para 1.

Conceder os privilégios de remoção e atualização ao usuário Vania com direito de propagação de privilégio GRANT DELETE, UPDATE ON Funcionario TO Vania WITH GRANT OPTION; Controle de Acesso

32

GRANT e REVOKE 

Particularidades 

o mesmo privilégio pode ser associado a um usuário U1 por qualquer número de outros usuários



um comando REVOKE realizado por um usuário U1 somente remove os privilégios de U1 garantidos por U1



um comando REVOKE realizado por um usuário U1 NÃO revoga todos os privilégios propagados a partir de U1 por meio da cláusula GRANT OPTION

Controle de Acesso

33

Especificando Autorização Através de Visões

Controle de Acesso

34

Exercício 4

Funcionario codFunc



Considere a mesma relação do exemplo anterior

nome

salario

cargo

1000

Flávio

2500,25 gerente

1548

Valéria

3500,55 analista

3001

Luciano 1420,63 secretária



Suponha que o DBA queira dar ao usuário Vania uma capacidade limitada para recuperar algumas informações da relação funcionário e permitir que seja capaz de propagar o privilégio.



A limitação é para recuperar apenas os atributos código e nome, e apenas para as tuplas com cargo igual secretária. Controle de Acesso

35

Resposta CREATE VIEW v_Secretaria AS SELECT codFunc, nome FROM Funcionario WHERE cargo = 'secretaria';

GRANT SELECT ON v_Secretaria TO Vania WITH GRANT OPTION; Controle de Acesso

36

Atividades Extraclasse 1.

Explique por que segurança de dados é importante.

2.

Qual o significado de conceder e revogar um privilégio?

3.

Pesquisar sobre SQL Injection. O que é e como pode ser evitado?

Controle de Acesso

37

Leitura Recomendada 

Capítulo 5: Segurança e Direitos de Acesso 



Capítulo 23: Segurança e Autorização em BD 



ELMASRI, R; NAVATHE, S. B. Sistemas de Banco de Dados. 4ª ed. São Paulo: Pearson, 2005.

Capítulo 17: Segurança 



MILANI, A. MySQL: Guia do Programador. São Paulo: Novatec, 2006.

DATE, C. J. Introdução a Sistemas de Banco de Dados. 8ª ed. Rio de Janeiro: Elsevier, 2004.

Capítulo 15: Administração e Segurança em BD 

ROB, P.; CORONEL, C. Sistemas de Banco de Dados: Projeto, Implementação e Administração. 8ª ed. São Paulo: Cengage Learning, 2011. Controle de Acesso

38

Bibliografia Básica 

DATE, C. J. Introdução a Sistemas de Banco de Dados. 8ª ed. Rio de Janeiro: Elsevier, 2004.



ELMASRI, R; NAVATHE, S. B. Sistemas de Banco de Dados. 4ª ed. São Paulo: Pearson, 2005.



ROB, P.; CORONEL, C. Sistemas de Banco de Dados: Projeto, Implementação e Administração. 8ª ed. São Paulo: Cengage Learning, 2011.



SÊMOLA, M. Gestão da Segurança da Informação: Uma Visão Executiva. Rio de Janeiro: Campus, 2003.

Controle de Acesso

39

Bibliografia Complementar 

GILLENSON, M. L. Fundamentos de Sistemas de Gerência de Banco de Dados. Rio de Janeiro: LTC, 2006.



MANZANO, J. A. N. G. MySQL 5.5 – Interativo: Guia Essencial de Orientação e Desenvolvimento. São Paulo: Érica, 2011.



SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de Banco de Dados. 3ª ed. Rio de Janeiro: Elsevier, 1999.



STEPHENS, R.; PLEW, R. Aprenda em 24 Horas SQL3. 3ª Ed. Rio de Janeiro: Campus, 2003.

Controle de Acesso

40
Slide 2 - Controle de Acesso

Related documents

40 Pages • 2,033 Words • PDF • 623 KB

36 Pages • 2,825 Words • PDF • 695.3 KB

1 Pages • 16 Words • PDF • 14.6 KB

50 Pages • 1,223 Words • PDF • 2.2 MB

18 Pages • 280 Words • PDF • 1.7 MB

10 Pages • 120 Words • PDF • 2.9 MB

42 Pages • 1,827 Words • PDF • 30.7 MB

173 Pages • 21,957 Words • PDF • 2.6 MB

121 Pages • 2,267 Words • PDF • 11.4 MB

2 Pages • 150 Words • PDF • 310.8 KB

2 Pages • 46 Words • PDF • 1 MB

7 Pages • 227 Words • PDF • 1.1 MB