BANCO DE DADOS FACSUL 2017 TECNOLOGIA DE REDE DE COMPUTADORES
SEGURANÇA Uma das maiores preocupações em computação tem sido segurança da informação Nos dias atuais, com o uso da internet os sistemas tornam-se onipresentes, entretanto também vulneráveis a ataques maliciosos. Portanto, os SGBDs trazem uma camada de segurança que visa compor o arsenal de segurança da informação. 2
SEGURANÇA Definição: Segurança em Banco de dados diz respeito à proteção do banco de dados contra acesso/alteração intensionais ou não intensionais utlizando-se ou não de meios computacionais. Áreas envolvidas: Roubo e fraude Perda de confidencialidade e privacidade Perda de integridade Perda de disponibilidade 3
SEGURANÇA O subsistema de segurança é responsável por proteger o BD contra o acesso não autorizado Formas de acesso não autorizado: Leitura não autorizada Modificação não autorizada Remoção de dados não autorizada 4
SEGURANÇA O DBA (Data Base Administrator, ou super user) tem plenos poderes para dar o revogar privilégios a usuários. Criação de contas Concessão/Revogação de privilégios Definição do nível de segurança 5
SEGURANÇA Controles de segurança computacionais Adiciona-se uma camada à segurança provida pelo SO Autorização e autenticação Backup e recovery Integridade Stored Procedures Criptografia Auditoria Views Procedimentos associados não relacionados ao BD Atualização do SO, checagem de virus, proxy, firewall, certificados digitais, SSL, SHTTP, etc 6
SEGURANÇA Controles de segurança não computacionais Política de segurança e plano de contingência Posicionamento Seguro de equipamentos Controle de acesso físico Manutenção 7
SEGURANÇA Duas abordagens para segurança de dados: Controle de acesso mandatório: Cada dado é rotulado com um certo nível de classificação Por exemplo: metadados de Sistema só podem ser lidos pelo DBA A cada usuário é dado um certo nível de acesso Por exemplo: DBA, administradores, usuários avançados e usuários clientes; cada classe com um determinado conjunto de possibilidades pré-definidas. 8
SEGURANÇA Controle de acesso discreto: Um dado usuário tem direitos de acesso (privilégios) diferentes em objetos diferentes Por exemplo: o usuário 3521-João só pode ler as tabelas Cliente e Produto e executar o procedimento CalculaTotalDeCompras. 9
SEGURANÇA Pertante um acesso indevido, o que se espera do SGBD é o mesmo tratamento dado à tentative de acesso a uma tabela inexistente ( no such table ) Portanto, se um usuário tentar acessar uma tabela que ele não tem privilégios para tal o erro será do tipo: Either no such table or you have no privilege on the table 10
SEGURANÇA O criador de um objeto é o dono do objeto e assim tem todos os privilégios sobre o objeto, podendo autorizar a outros usuários alguns (ou todos) destes privilégios. O usuário tem um auth_id criado pelo DBA: CREATE USER usuario IDENTIFIED BY senha Alguns SGBDs permitem que o usuário use o mesmo login e senha do SO Simplifica a autenticação Quando um usuário é criado, ele tem associado a ele um conjunto de objetos dos quais ele é dono e sobre so quais pode definer o controle de acesso Privilégios são atribuídos/revogados para: Usuários Papéis (Roles) 11
SEGURANÇA Depois de criar um usuário, o DBA pode concede privilégios de Sistema específicos a ele. GRANT privilegio1 [, privilegio2 ] TO usuario1 [, usuario2 perfil, PUBLIC ]; Por exemplo, dois usuários (user25415 e user2398) desenvolvedores de aplicativos podem ter o privilégios de Sistema a seguir: CREATE SESSION CREATE TABLE CREATE SEQUENCE CREATE PROCEDURE GRANT CREATE SESSION, CREATE TABLE, CREATE SEQUENCE, CREATE PROCEDURE TO user25415, user2398 12
SEGURANÇA Papéis (Roles) É um identificador ao qual atribui-se um conjunto de priviégios; um papel pode ser associado a diferentes usuários Pode-se inclusive ao criar um papel usar outros papéis já cadastrados 13
SEGURANÇA Exemplo de criação de papel (ROLE): CREATE ROLE desenvolvedores; GRANT CREATE SESSION TO desenvolvedores; GRANT CREATE TABLE TO desenvolvedores; GRANT CREATE PROCEDURE TO desenvolvedores; GRANT SELECT, UPDATE ON tabela01 TO desenvolvedores; GRANT desenvolvedores TO 3521-João DROP ROLE desenvolvedores; 14
SEGURANÇA Exemplo de criação de papel (ROLE): CREATE ROLE desenvolvedores; Privilégios de sistema Privilégios de objeto GRANT CREATE SESSION TO desenvolvedores; GRANT CREATE TABLE TO desenvolvedores; GRANT CREATE PROCEDURE TO desenvolvedores; GRANT SELECT, UPDATE ON tabela01 TO desenvolvedores; GRANT desenvolvedores TO 3521-João DROP ROLE desenvolvedores; 15
AUDITORIA O que é? A auditoria é um outro método usado para assegurar a integridade dos dados do banco Informa quais objetos foram acessados, e por quem 16
AUDITORIA Quem faz? A auditoria é função do DBA! Inclusive o DBA pode ser auditado! Como faz? A auditoria no banco deve ser habilitada e configurada é preciso dizer ao SGBD onde as informações de auditoria serão armazenadas; Com seu uso, o banco guarda as informações de auditoria seguindo os parâmetros definidos em sua configuração. 17
AUDITORIA Todos os tipos de auditoria usam os comandos audit/noaudit para ligar ou desligar a auditoria. Os tipos de auditoria podem ser: Statements auditoria de Statements (comandos); Privilege auditoria de privilégios; Schema object auditoria de esquema de objeto; Fine-Grained auditoria minuciosa; 18
AUDITORIA Auditing para statements, segue a sintaxe: AUDIT sql_statement_clause BY {SESSION ACCESS} WHENEVER [NOT] SUCCESSFUL; Exemplo: AUDIT INDEX BY KSHELTON; CREATE INDEX JOB_TITLE_IDX ON HR.JOBS(JOB_TITLE); SELECT USERNAME, TIMESTAMP, OBJ_NAME, ACTION_NAME, SQL_TEXT FROM DBA_AUDIT_TRAIL WHERE USERNAME = KSHELTON 19
AUDITORIA O resultado do select... Para desabilitar a auditoria sobre o usuário KSHELTON... NOAUDIT INDEX BY KSHELTON; 20
DIRETRIZES DA AUDITORIA Avaliar o propósito de auditoria, evitando auditoria desnecessária. Que tipo de atividade do BD você suspeita? Quem são os suspeitos? Auditar, inicialmente, de forma genérica e ir especializando. Apesar do custo baixo deve-se limitar o número de eventos auditados o máximo possível para minimizar o impacto de performance na execução de comandos auditados. 21
AUDITORIA EM MYSQL MySQL Enterprise Audit https://www.mysql.com/products/enterprise/audit.html 22
Backup Microsoft Access 2016 23
Backup - MySQL 24
Backup - Oracle 25
Conexões ODBC Excel e MySQL JDBC Conexões Nativas Microsoft Access 26
Exemplo de Conexões Criação de planilhas dinâmicas Microsoft Excel 27
MySQL Criação de banco de dados 28
MySQL Criação de tabela 29
MySQL Criação de tabela com relacionamento 30
MySQL Criação de tabela com relacionamento 31
Inclusão de registros SQL Incluir registros de exemplo Incluir nas tabelas e tabelas de ligação MySQL INSERT INTO `minha_tabela` (`codigo`, `campo1`, `campo2`, `campo3`) VALUES(NULL, 'Campo 1 descrição', '2017-11-07 00:00:00', 'Grande descrição ); INSERT INTO `minha_tabela` (`codigo`, `campo1`, `campo2`, `campo3`) VALUES(NULL,'Campo 1 descrição nova', '2017-11-15 17:36:12', 'Outra grande descrição!') 32
MySQL Criar consulta para todas as tabelas SQL para consulta da tabela SELECT codigo, campo1, campo2, campo3 FROM minha_tabela SELECT codigo, campo1, campo2, campo3 FROM minha_tabela Where codigo = 1 SELECT codigo, campo1, campo2, campo3 FROM minha_tabela Order By campo1 SELECT mt.codigo, mt.campo1, mt.campo2, mt.campo3, tr.cod_minha_tabela, tr.cod_minha_tabela_outra, mto.codigo, mto.descrição FROM minha_tabela mt Inner Join tabela_relacionamento tr on mt.codigo = tr.cod_minha_tabela Inner Join minha_tabela_outra mto on tr.cod_minha_tabela_outra = mto.codigo 33
Access - DER 34
Access - Formulário 35
Access Formulário de Ligação Selecionar Assistente de Formulário Selecionar a tabela de ligação Adicionar os campos que deseja relacionar (os códigos com índice) 36
Access Formulário de Ligação Definir o tipo de layout, que pode ser Coluna Depois definir o nome 37
Access Formulário de Ligação Após criado o formulário, entrar no Modo Design 38
Access Formulário de Ligação Excluir o campos criados automaticamente pelo Access 39
Access Formulário de Ligação Adicionar o campo Caixa de Seleção 40
Access Formulário de Ligação 41
Access Formulário de Ligação Após adicionados todos os campos, o formulário ficará desta forma. 42
Access Relatório Para criar um relatório, clique em Assistente de Relatório 43
Access Relatório 44
Access Relatório 45
Access Relatório 46
Access Dicionário de Dados 47