Baixe o app para aproveitar ainda mais
Prévia do material em texto
Indaial – 2021 Segurança em Banco de dadoS Sagah Educação S.A. 1a Edição Elaboração: Sagah Educação S.A Revisão, Diagramação e Produção: Centro Universitário Leonardo da Vinci – UNIASSELVI Conteúdo produzido Copyright © Sagah Educação S.A. Impresso por: apreSentação Caro acadêmico! Estamos iniciando o estudo da disciplina Segurança em Banco de Dados. Este livro é um dos instrumentos que contribuirá para a sua aprendizagem. A abordagem do livro é sobre conceitos importantes pertinentes às arquiteturas dos sistemas gerenciadores de bancos de dados, utilizando-os para a garantia da segurança e integridade às informações armazenadas. No decorrer deste livro, você será apresentado a diversos componentes inerentes aos bancos de dados, bem como suas possibilidades para garantir a segurança dos dados armazenados. Estudaremos cada componente de forma independente. Com a utilização de todos de modo integrado você será capaz de garantir a segurança do banco de dados. Na Unidade 1, você será introduzido a uma visão geral sobre segurança em banco de dados, reconhecendo os principais problemas de segurança em dados, e, a partir deles, criará estruturas de segurança, utilizando controle de acesso, gerenciamento de usuários e aplicando configurações de privilégios. Na Unidade 2, compreenderemos que existem recursos para mitigar caso haja problemas de invasão, tornando-se indispensável a criação de backups. Será nesta unidade também que você aprenderá sobre um dos ataques de invasão mais comum no que se refere aos bancos de dados na Web, o SQL Injection. Na Unidade 3, partiremos para uma visão da estrutura de um sistema gerenciador de banco de dados, utilizando recursos de tuning para garantir uma boa performance do banco de dados, bem como a aplicação de criptografia para reforçar a segurança dos dados armazenados. Aproveitamos a oportunidade para destacar a importância de desenvolver as autoatividades, lembrando que essas atividades não são opcionais. Elas objetivam a fixação dos conceitos apresentados. Em caso de dúvida, na realização das atividades, sugerimos que você entre em contato com seu tutor externo ou com a tutoria da UNIASSELVI, não prosseguindo as atividades sem ter sanado todas as dúvidas. Bons estudos! Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há novidades em nosso material. Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é o material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um formato mais prático, que cabe na bolsa e facilita a leitura. O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova diagramação no texto, aproveitando ao máximo o espaço da página, o que também contribui para diminuir a extração de árvores para produção de folhas de papel, por exemplo. Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente, apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilidade de estudá-lo com versatilidade nas telas do celular, tablet ou computador. Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assunto em questão. Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa continuar seus estudos com um material de qualidade. Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de Desempenho de Estudantes – ENADE. Bons estudos! NOTA Olá, acadêmico! Iniciamos agora mais uma disciplina e com ela um novo conhecimento. Com o objetivo de enriquecer seu conhecimento, construímos, além do livro que está em suas mãos, uma rica trilha de aprendizagem, por meio dela você terá contato com o vídeo da disciplina, o objeto de aprendizagem, materiais complementares, entre outros, todos pensados e construídos na intenção de auxiliar seu crescimento. Acesse o QR Code, que levará ao AVA, e veja as novidades que preparamos para seu estudo. Conte conosco, estaremos juntos nesta caminhada! LEMBRETE Sumário UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS ........................................................ 1 TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO ............................................................. 3 1 INTRODUÇÃO .................................................................................................................................... 3 2 PROBLEMAS DE SEGURANÇA EM BANCO DE DADOS ...................................................... 7 3 LINGUAGEM DE CONTROLE DE DADOS: CONCESSÃO E REVOGAÇÃO DE PRIVILÉGIOS ................................................................................................................................ 8 4 LINGUAGEM DE CONTROLE DE DADOS: CONCESSÃO E REVOGAÇÃO DE PRIVILÉGIOS .............................................................................................................................. 12 RESUMO DO TÓPICO 1..................................................................................................................... 15 AUTOATIVIDADE .............................................................................................................................. 17 TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS ........................................................................................... 19 1 INTRODUÇÃO .................................................................................................................................. 19 2 USUÁRIOS, GRUPOS E VISÕES .................................................................................................. 22 3 ETAPAS DE GERENCIAMENTO DE USUÁRIOS ..................................................................... 25 4 POLÍTICA DE SEGURANÇA DA INFORMAÇÃO ................................................................... 27 5 USO DE SCRIPTS .............................................................................................................................. 29 RESUMO DO TÓPICO 2..................................................................................................................... 38 AUTOATIVIDADE .............................................................................................................................. 41 TÓPICO 3 — CONHECENDO OS DESAFIOS DA ADMINISTRAÇÃO DE BANCO DE DADOS ............................................................................................ 43 1 INTRODUÇÃO .................................................................................................................................. 43 2 TECNOLOGIAS ................................................................................................................................. 45 3 PERFORMANCE ................................................................................................................................ 46 4 SEGURANÇA ..................................................................................................................................... 48 RESUMO DO TÓPICO 3..................................................................................................................... 50 AUTOATIVIDADE .............................................................................................................................. 52 REFERÊNCIAS ...................................................................................................................................... 53 UNIDADE 2 — RECUPERAÇÃO DE BANCO DE DADOS, DISPONIBILIDADE E LINGUAGEM SQL ............................................................................................. 55 TÓPICO 1 — BACKUPE RECUPERAÇÃO DE BANCO DE DADOS ...................................... 57 1 INTRODUÇÃO .................................................................................................................................. 57 2 CÓPIA DE SEGURANÇA EM BANCO DE DADOS ................................................................. 59 3 BACKUP APLICADO AO BANCO DE DADOS ........................................................................ 61 3.1 BACKUPS ON-LINE E OFF-LINE ............................................................................................. 61 3.2 BACKUPS FÍSICO E LÓGICO .................................................................................................... 62 3.3 BACKUPS COMPLETO E INCREMENTAL ............................................................................ 63 3.4 ARQUIVOS DE LOG DE TRANSAÇÕES – LOGS BINÁRIOS DO MYSQL ....................... 63 3.5 BACKUP COM REPLICAÇÃO EM SLAVE .............................................................................. 64 3.6 BACKUP EM BANCO DE DADOS POR LINHAS DE COMANDO .................................... 65 3.7 BACKUP LÓGICO POR MYSQLDUMP ................................................................................... 67 3.8 BACKUP COMPLETO E INCREMENTAL ............................................................................... 68 RESUMO DO TÓPICO 1..................................................................................................................... 70 AUTOATIVIDADE .............................................................................................................................. 71 TÓPICO 2 — ALTA DISPONIBILIDADE, TRANSAÇÕES E CONCORRÊNCIA EM BANCO DE DADOS ........................................................................................... 73 1 INTRODUÇÃO .................................................................................................................................. 73 2 AMEAÇAS À DISPONIBILIDADE EM BANCO DE DADOS ................................................ 80 3 TÉCNICAS UTILIZADAS NA ALTA DISPONIBILIDADE DE BANCO DE DADOS ........... 83 4 SOLUÇÕES DE ALTA DISPONIBILIDADE E SUAS FUNCIONALIDADES ..................... 88 RESUMO DO TÓPICO 2..................................................................................................................... 93 AUTOATIVIDADE .............................................................................................................................. 95 TÓPICO 3 — LINGUAGEM SQL BÁSICA E SQL INJECTION ................................................. 99 1 INTRODUÇÃO .................................................................................................................................. 99 2 LINGUAGEM SQL BÁSICA ......................................................................................................... 104 3 SQL INJECTION .............................................................................................................................. 111 RESUMO DO TÓPICO 3................................................................................................................... 114 AUTOATIVIDADE ............................................................................................................................ 115 REFERÊNCIAS .................................................................................................................................... 117 UNIDADE 3 — INFLUÊNCIA DA SEGURANÇA NAS CARACTERÍSTICAS E FUNÇÕES DOS BANCOS DE DADOS ........................................................ 119 TÓPICO 1 — CARACTERÍSTICAS DE UM BANCO DE DADOS ......................................... 121 1 INTRODUÇÃO ................................................................................................................................ 121 2 DISPONIBILIDADE E BACKUP ................................................................................................. 127 3 CONTROLE DE REDUNDÂNCIA .............................................................................................. 133 RESUMO DO TÓPICO 1................................................................................................................... 139 AUTOATIVIDADE ............................................................................................................................ 140 TÓPICO 2 — CRIPTOGRAFIA EM BANCOS DE DADOS ...................................................... 143 1 INTRODUÇÃO ................................................................................................................................ 143 2 CRIPTOGRAFIA DE TRIGGERS ................................................................................................ 149 3 CRIPTOGRAFIA DE VIEWS ....................................................................................................... 156 RESUMO DO TÓPICO 2................................................................................................................... 162 AUTOATIVIDADE ............................................................................................................................ 163 TÓPICO 3 — TUNING EM BANCOS DE DADOS ..................................................................... 165 1 INTRODUÇÃO ................................................................................................................................ 165 2 IMPORTÂNCIA DO TUNING NA MELHORIA DO DESEMPENHO DO BANCO DE DADOS ....................................................................................................................... 171 3 TIPOS DE ATIVIDADES DE TUNING EM BANCOS DE DADOS...................................... 176 LEITURA COMPLEMENTAR .......................................................................................................... 184 RESUMO DO TÓPICO 3................................................................................................................... 189 AUTOATIVIDADE ............................................................................................................................ 191 REFERÊNCIAS .................................................................................................................................... 193 1 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS OBJETIVOS DE APRENDIZAGEM A partir do estudo desta unidade, você deverá ser capaz de: • reconhecer problemas de segurança em banco de dados; • definir as instruções SQL de linguagem de controle de dados para concessão e revogação de privilégios; • ilustrar modelos de segurança de acesso aos dados em bancos de dados comerciais; • descrever as etapas de gerenciamento de usuários do banco de dados; • determinar como criar, alterar e remover usuários por meio de scripts; • reconhecer os conceitos de gerenciamento de usuários; • descrever o que são privilégios de um banco de dados; • reconhecer os comandos de permissões e suas consequências; • aplicar o uso de comandos de permissões do banco de dados e identificar os seus desafios com relação à administração; • aplicar comandos que auxiliam na administração do banco de dados; • reconhecer as técnicas de administração de banco de dados e identificar as responsabilidades do administrador destes; • reconhecer e diferenciar os comandos SQL, que auxiliam o administrador de banco de dados. 2 PLANO DE ESTUDOS Esta unidade está dividida em três tópicos. No decorrer da unidade, você encontrará autoatividades com o objetivo de reforçar o conteúdo apresentado. TÓPICO 1 – SEGURANÇA E CONTROLE DE ACESSO TÓPICO 2 – GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS TÓPICO 3 – CONHECENDO OS DESAFIOS DA ADMINISTRAÇÃO DE BANCO DE DADOS Preparado para ampliar seus conhecimentos? Respire e vamos em frente! Procure um ambiente que facilite a concentração, assim absorverá melhor as informações. CHAMADA 3 TÓPICO 1 — UNIDADE 1 SEGURANÇAE CONTROLE DE ACESSO 1 INTRODUÇÃO Os sistemas de gerenciamento de banco de dados (SGBDs) gerenciam diferentes ações, que podem ser executadas em um banco de dados, como inserção, manipulação ou exclusão de dados. No entanto, nem todos os usuários do banco de dados necessitam – ou mesmo devem – ter acesso a todas essas funcionalidades, tendo em vista a segurança do banco de dados. Por conta dessa preocupação com a segurança dos dados, existem diferentes modelos e comandos em linguagem de consulta estruturada (SQL, do inglês structured query language) que podem ser utilizados para realizar o controle de acesso dos usuários. Neste tópico, você estudará os possíveis problemas de segurança que podem acontecer em bancos de dados. Você também compreenderá as instruções SQL de linguagem de controle de dados para concessão e revogação de privilégios de usuários, bem como os diferentes modelos de segurança de acesso a bancos de dados comerciais Você já parou para pensar como um banco de dados realiza o controle de conteúdo armazenado e como cada usuário pode acessar os estes dados? Existem várias formas de restringir o acesso e a manipulação indevida de dados nos sistemas de gerenciamento de banco de dados (SGBDS) em SQL. Estas configurações e operações são utilizadas para prevenir problemas na segurança das informações – como a propagação de dados pessoais, entre eles: telefones, CPFs de clientes (por pessoas não autorizadas) etc. A fim de saber como manter a segurança de um banco de dados, é necessário compreender os possíveis problemas que podem afetá-lo e, assim, elaborar uma estratégia ou política de segurança. Para colocar em prática a estratégia construída, são utilizadas instruções da linguagem de controle de dados (DCL) em SQL. Por meio da DCL é possível restringir o acesso aos dados com a concessão ou a revogação de privilégios aos usuários do sistema. Um banco de dados precisa manter as informações armazenadas de forma segura, para poder garantir sua integridade e disponibilidade de sigilo. A segurança de um banco de dados é relacionada a estas três propriedades, que tratam basicamente de manter as informações protegidas de alterações, de acesso e de divulgação não autorizada. Por este motivo, além das operações que possibilitam as transações e a manipulação de dados, um Sistema de Gerenciamento de Banco de Dados (SGBD) precisa disponibilizar funções de segurança e controle de acesso. UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS 4 O controle de usuários de banco de dados pode ser feito por meio de diferentes comandos em SQL. Esses comandos garantem que cada função seja autorizada somente aos usuários responsáveis e que necessitam do acesso específico, a fim de garantir a segurança desses dados. A seguir, você conhecerá os principais comandos utilizados para a concessão de privilégios utilizados em SQL. FIGURA – OS PRINCIPAIS COMANDOS UTILIZADOS PARA A CONCESSÃO DE PRIVILÉGIOS UTILIZADOS EM SQL FONTE: O autor DICAS TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO 5 A segurança de um banco de dados é garantida por diferentes frentes, seja acesso à rede de dados, à segurança do sistema operacional, assim como os acessos à base de dados possibilitados pela criação de contas aos usuários. Essas contas devem ter restrições de acesso ou privilégios, de acordo com a necessidade de funcionalidade de cada um no sistema. A seguir, você conhecerá o caso de uma loja de celulares, acompanhando os processos de criação de novos usuários para o seu sistema de informações. FIGURA – PROCESSO DE CRIAÇÃO DE NOVOS USUÁRIOS DICAS UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS 6 FONTE: O autor Neste tópico, você entenderá mais sobre as responsabilidades do administrador de banco de dados, como a concessão e a retirada de privilégios de acesso aos usuários. TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO 7 2 PROBLEMAS DE SEGURANÇA EM BANCO DE DADOS A segurança de um banco de dados envolve solucionar diferentes tipos de problemas. Entre eles estão questões legais e éticas quanto ao direito de acessar informações sigilosas. Um exemplo é a venda do acesso a informações pessoais de clientes de um estabelecimento comercial ou de pacientes de um consultório médico – ou, ainda, a implementação de diferentes níveis de acesso a um sistema de informação, em que se permite acesso a determinadas funções para diferentes usuários. As possíveis ameaças a um banco de dados podem ser relacionadas a um ou a todos os objetivos de segurança mais gerais: integridade, disponibilidade e confidencialidade ou sigilo. A integridade trata da proteção da informação, para que ela não seja modificada sem a autorização necessária ou de forma incorreta. Já a disponibilidade é relacionada a permitir o acesso aos dados, deixando-os disponíveis aos seus usuários devidamente registrados. Por fim, a confidencialidade tem relação com a proteção da exposição de informações a usuários não autorizados (ELMASRI; NAVATHE, 2010). Para proteger os bancos de dados das ameaças e manter seus objetivos de segurança, são utilizados quatro tipos de medidas de controle: controle de acesso, controle de ingerência, controle de fluxo e criptografia. O controle de acesso é realizado ao se criar contas de usuários e senhas para moderar o processo de entrada a um SGBD. Já o controle de ingerência se refere ao controle de acesso a bancos de dados estatísticos, que possibilitam interpretar informações estatísticas, ou seja, ler resumos de dados sobre uma população ou sobre clientes de uma empresa, por exemplo (ELMASRI; NAVATHE, 2010). O controle de fluxo impede que informações fluam de modo descontrolado a usuários não autorizados. Por fim, a criptografia é empregada para proteger dados confidenciais, que precisam ser transmitidos por alguma rede de comunicação. Ela é empregada para criptografar partes específicas de um banco de dados, por meio de algum algoritmo de codificação, como em sistemas de transações financeiras. A integridade é aplicada quando os estudantes possuem acesso as suas notas, mas não podem modificá-las, por exemplo. Já a disponibilidade pode ser vista no fato de um professor precisar alterar uma nota de um estudante e ter acesso a essa modificação. Um exemplo de confidencialidade é um estudante não poder ter acesso para examinar as notas dos demais estudantes, mantendo o seu sigilo (RAMAKRISHNAN; GEHRKE, 2011). DICAS UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS 8 De acordo com Ramakrishnan e Gehrke (2011), é necessário definir uma política de segurança clara e consistente para atingir os objetivos de segurança de um banco de dados. Essa política deve descrever as medidas de segurança a serem impostas, bem como quais partes do banco de dados devem ser protegidas por cada uma delas. De forma complementar, os mecanismos de segurança do SGBD e do sistema operacional, bem como os mecanismos externos, precisam seguir essa mesma política de segurança. Falhas na segurança do sistema operacional ou da conexão de rede podem tornar inúteis os mecanismos de segurança de um banco de dados; por isso, eles devem trabalhar de forma cooperativa. Por exemplo, um acesso indevido à rede de dados de uma empresa pode possibilitar que um intruso acesse a base de dados com acesso de administrador e, portanto, com acesso total às informações armazenadas. O administrador de banco de dados (DBA, do inglês data base administrator) é o principal responsável pela administração e pelo gerenciamento de um sistema de banco de dados. Ao DBA pertence a conta do sistema ou conta superusuário, a qual permite todos os acessos aos dados – o quenão pode ser disponibilizado a contas de usuário comuns. Esses acessos privilegiados do DBA abrangem: criação de conta, concessão de privilégio, revogação de privilégio e atribuição de nível de segurança (ELMASRI; NAVATHE, 2010). Portanto, cabe ao DBA criar contas e senhas para os grupos de usuários do sistema, para que tenham acesso ao SGBD. Ele deve, também, conceder e revogar privilégios especiais sobre os dados, como modificação, exclusão ou inclusão de registros. Por fim, também é sua responsabilidade atribuir às contas de usuário diferentes níveis de segurança. O gerenciamento de contas e senhas em um SGBD pode ser feito por meio de uma tabela criptografada com apenas dois campos: número ou nome de conta e senha. Assim, sempre que for necessária a criação de uma nova conta, um novo registro é incluído nessa tabela. Consequentemente, quando uma conta é cancelada, o respectivo registro deve ser excluído. O SGBD também necessita manter um registro de todas as alterações no banco de dados efetuadas por cada usuário, durante sua sessão de acesso, para que, em caso de adulteração do banco de dados, o DBA possa identificar qual é o usuário responsável. 3 LINGUAGEM DE CONTROLE DE DADOS: CONCESSÃO E REVOGAÇÃO DE PRIVILÉGIOS O método mais comum de imposição de controle de acesso a um sistema de banco de dados se baseia na concessão e revogação de privilégios. O SGBD deve fornecer acesso seletivo a cada relação do seu banco de dados, com base nas contas de usuários específicos. Segundo Elmasri e Navathe (2010), existem dois níveis principais de atribuição de privilégios para utilizar o banco de dados: TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO 9 • o nível de conta, que trata dos acessos a dados independentemente de suas relações; e • o nível de relação, no qual o DBA realiza a liberação de acesso a cada relação ou visão do banco de dados. Os privilégios do nível de conta se aplicam às capacidades fornecidas à própria conta e podem incluir o privilégio CREATE SCHEMA ou CREATE TABLE, para criar um esquema ou relação da base; o privilégio CREATE VIEW; o privilégio ALTER, para aplicar mudanças de esquema (como a inclusão ou remoção de atributos das relações); o privilégio DROP, para excluir relações ou visões; o privilégio MODIFY, para inserir, excluir ou atualizar tuplas; e o privilégio SELECT, para recuperar informações do banco de dados usando a consulta SELECT (ELMASRI; NAVATHE, 2010, p. 567). Nesse sentido, os privilégios do nível de conta são aplicados à conta de maneira geral. Portanto, se uma conta não possui o privilégio CREATE TABLE, não poderá criar nenhuma relação, bem como se não possui o privilégio SELECT, não será capaz de recuperar dados do banco de dados por meio de consultas. Os privilégios também podem ser aplicados em nível de relação, tanto para visões quanto relações da base. A concessão dos privilégios de relação costuma seguir um modelo de matriz de acesso, em que as linhas da matriz representam sujeitos (usuários, contas ou programas), e as colunas representam objetos (relações, registros, colunas, visões ou operações). Assim, cada posição dessa matriz de acesso representa um nível de privilégio, que pode ser concedido ao usuário (ELMASRI; NAVATHE, 2010). De forma parecida aos privilégios de nível de conta, os privilégios em nível de relação que podem ser concedidos são: • SELECT para recuperação ou leitura; • UPDATE, DELETE e INSERT para modificação; e • privilégio de referências, que possibilita referir-se a uma relação ao definir restrições de integridade. Cada um desses privilégios pode ser restrito a atributos específicos do banco de dados (ELMASRI; NAVATHE, 2010). A fim de deixar claro todos os privilégios que podem ser concedidos aos usuários de bancos de dados em SQL, apresentamos a tabela a seguir. Nela, estão listados os privilégios e as suas respectivas descrições ou funções. UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS 10 TABELA 1 – LISTA DE PRIVILÉGIOS EM SQL FONTE: Adaptado de Cardoso e Cardoso (2012) Veja na sequência exemplos de concessão de privilégios em SQL, nos quais o DBA necessita criar quatro contas, A1, A2, A3 e A4, com diferentes níveis de privilégios. Vamos conferir alguns exemplos a seguir. • GRANT CREATE TO U1 Concede um privilégio do nível de conta, que permite criar tabelas, visões, triggers ou banco de dados U1. • GRANT INSERT, DELETE ON COLABORADOR, DEPARTAMENTO TO U2; Concede um privilégio do nível de conta, que permite à conta U2 inserir e excluir tuplas das relações COLABORADOR e DEPARTAMENTO, mas não permite que esses privilégios sejam repassados a outras contas. TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO 11 • GRANT INSERT, DELETE ON COLABORADOR, DEPARTAMENTO TO U3 WITH GRANT OPTION; Concede um privilégio do nível de conta, que permite à conta U3 inserir e excluir tuplas das relações COLABORADOR e DEPARTAMENTO. Além disso, permite que esses privilégios sejam repassados a outras contas. • GRANT SELECT ON DEPARTAMENTO TO U4; Concede um privilégio do nível de conta, que permite à conta U4 recuperar tuplas da relação DEPARTAMENTO, mas não permite que esses privilégios sejam repassados a outras contas. • REVOKE SELECT ON DEPARTAMENTO TO U4; Revoga o privilégio de A4 de recuperar tuplas da relação DEPARTAMENTO. • CREATE VIEW U3COLABORADOR AS SELECT Nome, Data _ Nasc, Endereco FROM FUNCIONARIO • WHERE Dnr = 4; Concede um privilégio do nível de conta, que permite que a conta U3 tenha uma capacidade limitada de SELECT na relação COLABORADOR, em que será autorizada a recuperar apenas os atributos Nome, Data_Nasc e Endereco para as tuplas com o Dnr = 4. Primeiro, cria-se a visão: • GRANT SELECT ON A3 COLABORADOR TO U3 WITH GRANT OPTION Depois, é concedido à conta U3 o privilégio da visão, assim como o privilégio de propagar o seu acesso à relação FUNCIONÁRIO a outras contas. • GRANT UPDATE ON COLABORADOR (Salario) TO U4; Concede à conta A4 o privilégio de atualizar apenas o atributo salário da relação COLABORADOR. Como foi possível verificar no último exemplo, o privilégio UPDATE – e da mesma forma o INSERT – possibilita especificar atributos em particular, que podem ser atualizados ou inseridos em uma relação. Já os privilégios SELECT e DELETE não permitem essa especificação de atributo. UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS 12 4 LINGUAGEM DE CONTROLE DE DADOS: CONCESSÃO E REVOGAÇÃO DE PRIVILÉGIOS Um banco de dados de uma organização possui um grande número de informações e, geralmente, vários diferentes grupos de usuários. A maior parte dos usuários precisa ter acesso a somente uma pequena parte específica do banco de dados para realizar as suas atribuições. Autorizar o acesso ao banco de dados sem restrições a todos os usuários é indesejável, principalmente em grandes organizações. Por esse motivo, um SGBD fornece formas para controlar o acesso aos dados. Por exemplo, colaboradores do setor de comunicação de uma empresa não precisam ter acesso a dados funcionais dos seus colegas – esses dados são úteis apenas para o setor de gestão de pessoas. Por esse motivo, cada setor de uma empresa deve possuir níveis diferentes de acesso às informações do banco de dados, de acordo com suas necessidades, a fim de aumentar a eficiência, a segurança e o controle de acesso. Existem várias técnicas de controle de acesso em bancos de dados. Uma delas é a técnica de controle de acesso discricionário, que permite conceder e revogar privilégios em relações, sendo a forma mais utilizada em sistemas de banco de dados relacionais. É um método explícito, no qual basicamente o usuário tem determinado privilégio ou não tem. Essa técnica também é aplicada em conjunto com uma política de segurança adicional, chamada de controle de acesso obrigatório(mandatory access control). Cabe ressaltar que a maioria dos SGBDs comerciais atuais oferece somente mecanismos para o controle de acesso discricionário (ELMASRI; NAVATHE, 2010). As políticas de controle de acesso discricionário (DAC) têm como característica um alto grau de flexibilidade; por esse motivo, são adequadas a uma variedade grande de domínios de aplicação. Contudo, como desvantagem, o uso de modelos DAC é vulnerável a ataques maliciosos, como cavalos de Troia embutidos em programas de aplicação. Isso porque esses modelos de autorização não realizam um controle sobre como a informação é propagada e utilizada depois de ter sido acessada pelos usuários autorizados (ELMASRI; NAVATHE, 2010). Outro modelo de acesso é o de política obrigatória, que garante um alto grau de proteção no fluxo de informações. É utilizada para aplicações militares ou demais áreas que necessitam de um grau de proteção maior. A desvantagem da política obrigatória é a sua rigidez, pois exige uma classificação precisa de sujeitos e objetos nos diferentes níveis de segurança, sendo aplicada em poucos ambientes. Por esse motivo, a política discricionária é mais empregada, pela sua facilidade de escolha entre aplicabilidade e segurança (ELMASRI; NAVATHE, 2010). No dia a dia de uma empresa, geralmente, os privilégios de acesso são relacionados com o trabalho dos usuários ou o seu papel na organização. Por esse motivo, utiliza-se o modelo de segurança de acesso de autorização baseada em papéis. TÓPICO 1 — SEGURANÇA E CONTROLE DE ACESSO 13 Nesse modelo, os privilégios são atribuídos a papéis no SGBD. Os papéis podem ser criados com o comando CREATE ROLE e destruídos com o comando DROP ROLE. Assim, os usuários podem receber, revogar e também repassar papéis a outros usuários por meio dos comandos Grant e Revoke, apresentados anteriormente (RAMAKRISHNAN; GEHRKE, 2011). Veja na Figura 1 uma representação gráfica da concessão de privilégios de papéis por meio do comando GRANT. FIGURA 1 – CONCESSÃO DE PRIVILÉGIOS PARA PAPÉIS FONTE: Adaptada de Exasol (c2020a) Por exemplo, uma empresa pode possuir os papéis de operador de caixa, coordenador de vendas, gerente, entre outros. Vários usuários podem ser designados para cada um dos papéis, para que os privilégios de segurança mais comuns de determinado papel sejam concedidos a ele e possam ser designados aos funcionários que necessitem desses mesmos privilégios. O controle de acesso baseado em papéis pode ser usado tanto com o controle de acesso discricionário quanto com o obrigatório. Com seu uso, é garantido que somente usuários autorizados em papéis específicos recebam o acesso a determinados dados ou recursos do banco de dados, o que possibilita que os usuários criem sessões durante as quais possam ativar um subconjunto de papéis aos quais pertencem. Cada sessão pode ter mais de um papel atribuído, mas é mapeada para um usuário apenas (ELMASRI; NAVATHE, 2010). Na Figura 2 é apresentada a revogação de privilégios de papéis, utilizando o comando REVOKE. FIGURA 2 – REVOGAÇÃO DE PRIVILÉGIOS PARA PAPÉIS FONTE: Adaptada de Exasol (c2020b) Acessando o link a seguir, você pode conhecer mais conceitos e exemplos sobre o uso do comando REVOKE, utilizado para remover privilégios de usuários. Confira em: http://bit.ly/3b3GTyP. DICAS UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS 14 Separar as tarefas é outra função importante para os SGBDs comerciais. Essa ação é importante para impedir que um usuário realize o trabalho que requer o envolvimento de mais pessoas, impedindo, assim, falsificações, por exemplo. Um método utilizado para esse fim é a exclusão mútua de papéis, em que dois ou mais papéis são definidos como mutuamente exclusivos – assim, não podem ser utilizados ao mesmo tempo pelo mesmo usuário. Esse método pode ser controlado de duas formas (ELMASRI; NAVATHE, 2010): • Exclusão – em tempo de autorização, em que em nenhum momento dois papéis podem ser utilizados simultaneamente; • Exclusão – por tempo de execução, na qual se determina um tempo máximo. Há ainda o controle de acesso em nível de linha, utilizado em muitos SGBDs comerciais. Nesse modelo, regras de controle de acesso podem ser aplicadas ao considerar dados linha por linha, em que cada linha recebe um rótulo, que é empregado para armazenar as informações sobre a sensibilidade dos dados. Assim, as permissões não são especificadas por tabelas ou colunas, mas, sim, em cada linha. Para isso, o usuário recebe um rótulo de sessão padrão com um número correspondente ao seu nível de acesso do DBA. Quanto maior o nível de segurança, maior o número do rótulo. Portanto, usuários com um baixo nível de autorização conseguem acessar somente dados com rótulos menores (ELMASRI; NAVATHE, 2010). 15 Neste tópico, você aprendeu que: • A DCL é um subconjunto da SQL. Ela é utilizada para controlar o acesso e gerenciar permissões de usuários em bancos de dados. • A disponibilidade trata da permissão de acesso aos dados, deixando-os disponíveis aos seus usuários devidamente registrados. Já a integridade trata da proteção da informação, para que ela não seja modificada sem a autorização necessária ou de forma incorreta. E a confidencialidade (ou sigilo) tem relação com a proteção da exposição de informações a usuários não autorizados. • O controle de fluxo impede que informações fluam de modo descontrolado a usuários não autorizados, enquanto a criptográfica é empregada para proteger dados confidenciais, que precisam ser transmitidos por alguma rede de comunicação. Já o controle de acesso é realizado ao criar contas de usuários e senhas para moderar o processo de login pelo SGBD. • O controle de ingerência se refere ao controle de acesso a bancos de dados estatísticos, que possibilitam interpretar informações estatísticas, ou seja, ler resumos de dados sobre uma população ou sobre clientes de uma empresa, por exemplo. • O comando GRANT é utilizado nas instruções que concedem e repassam privilégios a usuários de um banco de dados. A sintaxe básica do uso desse comando é: GRANT {lista de privilégios} ON {relação ou visão} TO {usuário ou lista de usuários}. • Ao utilizar a frase “WITH GRANT OPTION”, o usuário está sendo autorizado a repassar este mesmo privilégio a outras contas. O privilégio SELECT concede a permissão para realizar consultas de recuperação de dados. O privilégio UPDATE permite atualizar dados das tabelas, no caso da questão, apenas o atributo NOTA da relação ALUNOS à conta PROFESSOR5. O privilégio INSERT permite incluir dados nas tabelas, e o privilégio DELETE permite excluir dados das tabelas. • O comando REVOKE é utilizado nas instruções que revogam privilégios a usuários de um banco de dados. A sintaxe básica do uso desse comando é: REVOKE {lista de privilégios} ON {relação ou visão} TO {usuário ou lista de usuários}. RESUMO DO TÓPICO 1 16 • ALTER permite alterar tabelas, colunas e índices. DROP permite excluir tabelas, visões, triggers ou banco de dados. UPDATE permite atualizar dados das tabelas. DELETE, excluir dados da tabela. USAGE, conectar ao servidor. INDEX, adicionar ou excluir índices. CREATE, criar tabelas, visões, triggers ou banco de dados. • O controle de acesso baseado em papéis pode ser usado tanto com os controles de acesso discricionário quanto obrigatório. Ele possibilita que os usuários criem sessões durante as quais possam ativar um subconjunto de papéis aos quais pertencem, onde cada sessão pode ter mais de um papel atribuído, sendo mapeada para apenas um usuário. Separar as tarefas é outra função importante para impedir que um usuário realize o trabalho que requer o envolvimento de mais pessoas,o que é feito pela exclusão mútua. Os papéis podem ser criados com o comando CREATE ROLE e destruídos com o comando DROP ROLE. 17 1 As ameaças de segurança a banco de dados são relacionadas a três objetivos de segurança mais gerais. Assinale a alternativa em que um desses objetivos de segurança é descrito de forma CORRETA: a) ( ) Acessibilidade: controlar o acesso a bancos de dados específicos. b) ( ) Sigilo: possibilitar a atualização dos dados por usuários externos. c) ( ) Confidencialidade: proteger a informação de modificações indevidas. d) ( ) Disponibilidade: permitir acesso aos dados a usuários autorizados. 2 A proteção dos bancos de dados contra ameaças é garantida por quatro tipos de medidas de controle específicas. Assinale a alternativa na qual uma dessas medidas é descrita de forma CORRETA: a) ( ) Controle de acesso: proteção de dados ao transmiti-los por rede de comunicação. b) ( ) Controle de ingerência: criação de contas de usuários para moderar a entrada no SGBD. c) ( ) Controle de fluxo: controle do deslocamento de informações a usuários não autorizados. d) ( ) Criptografia: interpretação de resumos de dados sobre um grupo de atributos de uma tabela. 3 O administrador de banco de dados é o principal responsável pela administração e pelo gerenciamento de um sistema de banco de dados. Entre suas responsabilidades estão a criação de conta e a concessão e revogação de privilégios. Assim, observe a expressão a seguir: GRANT SELECT, UPDATE (NOTA), INSERT, DELETE ON ALUNOS TO PROFESSOR5 WITH GRANT OPTION; Assinale a alternativa CORRETA que descreve a função da expressão apresentada: a) ( ) Concede privilégios que permitem a conta PROFESSOR recuperar, atualizar o atributo nota e excluir tuplas da relação ALUNOS, possibilitando que esses privilégios sejam repassados a outras contas. b) ( ) Concede privilégios que permitem a conta PROFESSOR5 recuperar, atualizar o atributo nota e inserir e excluir tuplas da relação ALUNOS, possibilitando que esses privilégios sejam repassados a outras contas. c) ( ) Concede privilégios que permitem a conta PROFESSOR5 recuperar, atualizar o atributo notas, inserir e excluir tuplas da relação ALUNO, possibilitando que esses privilégios sejam repassados a outras contas. d) ( ) Concede privilégios que permitem a conta PROFESSOR5 recuperar o atributo (nota), atualizar, inserir e excluir tuplas da relação ALUNOS, possibilitando que esses privilégios sejam repassados a outras contas. AUTOATIVIDADE 18 4 Assim como a concessão, a revogação de privilégios para usuários em um banco de dados é importante para garantir a segurança das informações armazenadas. Sendo assim, com relação à afirmação em que são revogados os privilégios da relação: • CLIENTE da conta usu_teste: o que permite alteração de tabelas. • Colunas e índices; o que permite excluir tabelas, visões, triggers ou banco de dados. Assinale a alternativa CORRETA: a) ( ) REVOKE ALTER, DROP ON CLIENTE TO USU_TESTE. b) ( ) REVOKE UPDATE, DELETE ON CLIENTE TO USU_TESTE. c) ( ) REVOKE USAGE, INDEX ON CLIENTE TO USU_TESTE. d) ( ) REVOKE ALTER, DELETE ON CLIENTE TO USU_TESTE. 5 O modelo de segurança de acesso de autorização baseado em papéis auxilia a conceder os privilégios de acesso relacionados com o trabalho dos usuários, ou o seu papel na organização. Sendo assim, assinale a alternativa CORRETA que descreve uma das características da autorização baseada em papéis. a) ( ) Os papéis podem ser criados por meio do uso do comando DROP ROLE. b) ( ) Pode ser utilizado tanto com os controles de acesso discricionário quanto obrigatório. c) ( ) O controle da inclusão múltipla de papéis pode ser feito por meio da exclusão mútua. d) ( ) Cada sessão de usuário pode ter mais que um papel atribuído e mais que um usuário. 19 TÓPICO 2 — UNIDADE 1 GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 1 INTRODUÇÃO O usuário faz parte do grupo de pessoas que compõem a visão sociotécnica dos sistemas empresariais, formados por hardware, dados, software e pessoas. Segundo Sommerville (2007), os usuários são pessoas influenciadas pela forma como a organização é gerenciada. Eles também são influenciados pelas suas interações com outras pessoas dentro e fora da organização. Decorre daí a importância do usuário no banco de dados. A partir dos dados armazenados e por meio de seus processos e atitudes, o usuário atribui o verdadeiro valor ao alcance dos objetivos do negócio. A confidencialidade, ou seja, a proteção aos dados, também é determinada pelo modo como os usuários lidam com as informações. Nesse contexto, é importante conhecer as visões que os usuários possuem com relação ao desenvolvimento de suas atividades. Em síntese, a visão é a forma como o usuário enxerga e aplica os dados. Muitos usuários podem compartilhar uma mesma visão, o que justifica o uso de grupos de usuários. Neste tópico, você conhecerá os conceitos de usuário e grupo de usuários. Você também vai ver a importância de conhecer a visão adequada de cada usuário. Além disso, estudará as etapas de gerenciamento e a utilização de scripts para a execução de comandos SQL e para a manutenção de usuários. O sistema de banco de dados é formado por hardware, software e pessoas. Cada um atua de uma forma: o hardware na disponibilização dos recursos físicos de comunicação, espaço físico, processamento e armazenamento; o software na realização das atividades de acesso ou de disponibilidade dos dados; as pessoas na definição, gerência e utilização dos dados. Cada parte com sua função, mas todas com total importância para o contexto geral. Especificamente, com relação às pessoas, para que elas possam utilizar os recursos, é preciso que sejam devidamente cadastradas no banco de dados. O cadastramento é realizado pelo DBA e, a partir daí, as pessoas são usuários do banco de dados, com identificação e senha de acesso. A administração de um banco de dados envolve ações referentes à criação e à manutenção do dicionário de dados, ao gerenciamento de espaço, ao acompanhamento de utilização de recursos e ao gerenciamento de usuários e de privilégios. 20 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS O gerenciamento de usuários envolve, em um primeiro momento, a conceituação de usuários, grupos e visões. Na sequência, as atividades de identificação do usuário, planejamento de grupos e de visões, as quais buscam conhecer que tipo de uso ele fará com os dados. Por fim, o gerenciamento dos usuários e a manutenção desses, criando, alterando e excluindo usuários, sempre no propósito de gerar confidencialidade, integridade e disponibilidade dos dados. A seguir, você visualizará o processo de gerenciamento e de manutenção de usuários do banco de dados, os níveis de abstração e o tipo de usuário para cada nível. FIGURA – PROCESSO DE GERENCIAMENTO E MANUTENÇÃO DE USUÁRIOS FONTE: Adaptada de <https://blog.saphir.com.br/gerenciamento-do-banco-de-dados- por-que-se-preocupar-com-isso/>. Acesso em: 11 ago. 2021. DICAS TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 21 A empresa é um organismo dinâmico em que todos os dias procedimentos são ajustados, pessoas são contratadas e, também, dispensadas. Toda essa movimentação gera manutenção nos ambientes operacionais e tecnológicos. No caso dos bancos de dados, é preciso registrar a entrada de novas pessoas autorizadas para o acesso aos dados e retirar as pessoas que são desligadas, pois essas não devem mais ter acesso aos dados, visto que é necessário preservar a integridade e a confidencialidade dos dados. A seguir, você verá, a partir de uma situação de contratação de novos funcionários, quais procedimentos um DBA deve realizarpara a concessão de identificação de usuário aos novos funcionários. FIGURA – IDENTIFICAÇÃO DE USUÁRIOS DICAS 22 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS FONTE: O autor 2 USUÁRIOS, GRUPOS E VISÕES Segundo Graves (2003), o sistema de um banco de dados é formado pelo banco de dados e pelo ambiente disponível para o seu uso, que inclui usuários, software e hardware. O hardware é necessário para hospedar e prover recursos de interação entre os serviços disponibilizados pelos softwares. Por sua vez, o software é composto pelo sistema operacional, pelo Sistema Gerenciador de Banco de Dados (SGBD) e por programas de diversas finalidades. Os usuários são as pessoas que, de alguma forma, utilizam os dados, seja para desenvolver os softwares – caso dos analistas e programadores —, para gerenciar os dados – caso dos administradores de banco de dados (DBA) —, ou para utilizar os dados – caso dos clientes ou usuários finais (figura a seguir). TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 23 FIGURA 3 – INTERAÇÃO DOS USUÁRIOS COM BANCO DE DADOS FONTE: O autor Em um ambiente operacional de tecnologia, há servidores que atendem aos sistemas corporativos e bancos de dados que trabalham coordenados pelo sistema operacional do servidor onde estão instalados, mas com autonomia em suas definições. Há também usuários do sistema operacional utilizando os sistemas corporativos, e devem existir os usuários do banco de dados. Os usuários do banco de dados possuem definição própria com relação às definições no servidor hospedeiro. Se um usuário é criado no âmbito do banco de dados, o SGBD tem total controle das ações e visões deste usuário. A cada usuário é associado um nome de identificação, que serve de meio para a definição de sua visão no banco de dados. Segundo Macedo (2011), os nomes dos usuários de banco de dados são globais para todo o agrupamento de bancos de dados (e não próprios de cada banco de dados). Em algumas instalações, os usuários do banco de dados são criados a partir dos usuários nos servidores hospedeiros, mas é fato que o SGBD possui seus próprios usuários cadastrados, independentemente da origem da criação. INTERESSA NTE Segundo o dicionário Aurélio (2018), a visão é o ato ou efeito de ver. Para o banco de dados, a visão se refere às informações ou ao conjunto de informações que o usuário busca. Assim, entende-se visão como um conjunto virtual de informações formado a partir da junção de informações do banco de 24 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS dados. Silberschatz, Korth e Sudarshan (2012) consideram que proporcionar ao usuário uma visão abstrata é um dos maiores benefícios de um banco de dados. Na visão abstrata, o sistema oculta a forma de armazenamento e de manutenção dos dados. Nesse sentido, os mesmos autores propõem três níveis de abstração de usuário, cada um com sua representação conceitual dos dados. Buscando eficiência na abstração dos dados, o SGBD fornece as informações apropriadas para cada nível de abstração de usuário. Assim, cada nível terá uma abstração que estará ocultando a complexidade e simplificando a interação. Os três níveis de abstração de usuário são: físico, lógico e visão. Veja a seguir: • O nível de abstração físico ou interno é considerado o nível mais baixo e apresenta os dados como são armazenados no banco de dados (estruturas). • O nível de abstração lógico ou conceitual é o nível intermediário, que apresenta os dados e os seus relacionamentos. • O nível de visão ou nível externo é o mais alto, utilizado pelos usuários finais. Ele apresenta somente o que é necessário a esses usuários. Na figura a seguir, você pode ver os níveis de abstração. FIGURA 4 – NÍVEIS DE ABSTRAÇÃO FONTE: Adaptada de Silberschatz, Korth e Sudarshan (2012) De acordo com Silberschatz, Korth e Sudarshan (2012), um banco de dados deve prover informações a todo tipo de usuário, conforme as suas necessidades específicas. Essas necessidades acabam gerando visões distintas. Dessa forma, há múltiplas visões dos dados. Por exemplo, em uma organização, os funcionários do departamento pessoal precisam ver as informações necessárias para a folha de pagamento e para o recolhimento dos impostos e das obrigações legais. Entre as informações da folha de pagamento, você pode considerar: funcionário, situação (ativo, férias, desligado, licença-maternidade, afastamento etc.), salário, faltas no mês, folha de ponto, departamento, plano de saúde, entre outras. Assim, o administrador do banco de dados cria uma visão específica com essas informações. Já os funcionários do setor de compras precisam ver as informações relativas a contratos (vendas), estoque, fornecedores, mercado, entre outras. TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 25 Cada visão pode atender a vários usuários e, para o banco de dados, os vários usuários formam um grupo. Assim, em um banco de dados, um grupo representa o conjunto de usuários que têm a mesma visão dos dados. Manter grupos de usuários simplifica a administração de usuários em um banco de dados na medida em que as visões e ações podem ser atribuídas a partir do grupo e não individualmente a cada usuário. 3 ETAPAS DE GERENCIAMENTO DE USUÁRIOS Até agora, você viu que no banco de dados o acesso é feito por usuários e que os dados são apresentados a ele de acordo com as suas necessidades. Além disso, todo usuário deve ser identificado. Assim, é muito importante para a segurança, a integridade e a confidencialidade do banco de dados conhecer os usuários que o utilizam e classificá-los de acordo com as suas necessidades e apropriações de uso. Portanto, o gerenciamento de usuários controla os usuários do banco de dados, disponibilizando as visões dos objetos que proverão os dados necessários. Os usuários são classificados em função do tipo de utilização que se dá no banco de dados: administradores, técnicos, especialistas e finais (figura a seguir). FIGURA 5 – TIPOS DE USUÁRIOS FONTE: O autor • Usuários administradores Há dois usuários administradores: administrador de dados e administrador de banco de dados (DataBase Administrator [DBA]). Eles atuam no nível físico do banco de dados e têm as funções listadas a seguir. o Administrador de dados: define os dados, seus relacionamentos e o modo como as aplicações podem compartilhar os dados; atualiza o esquema do banco de dados; mantém a consistência das informações. 26 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS o Administrador de banco de dados: gerencia a estrutura de armazenamento, a estratégia e a autorização de acesso aos dados; define controles de integridade e estratégias de backup e monitoramento do desempenho. Gerencia e planeja as atividades de manutenção dos bancos de dados, define políticas de segurança e planos de contingência. • Usuários técnicos Os usuários técnicos atuam no nível lógico, pois utilizam os dados para o desenvolvimento de sistemas diretamente no SGBD. Nessa atuação, é necessária a utilização direta do banco de dados para testes e definições. Analistas de sistemas e desenvolvedores são usuários técnicos, como você pode ver a seguir. o Analista de sistemas: define os requisitos dos usuários finais e desenvolve especificações para transações que atendam a esses requisitos. o Desenvolvedor de aplicações: implementa as especificações dos programas, testando, depurando, documentando e fazendo a manutenção. o Desenvolvedor de banco de dados: trabalha com a construção de triggers e linguagens de programação do banco de dados, como: PL/ SQL (Oracle), Transact SQL (SQL Server) e PL/pgSQL (PostgreSQL). Essas linguagens costumam ter um bom desempenho, pois ficam armazenadasno banco de dados. O MySQL não possui uma linguagem de programação, mas disponibiliza todos os recursos necessários para o desenvolvimento de procedures e triggers. • Usuários especialistas Os usuários especialistas atuam no nível de visão com a função do usuário final, mas também atuam no nível lógico, pois manipulam dados sem o uso de aplicativos e utilizam linguagens de consulta diretamente no banco de dados para obter consultas com o intuito de extração de conhecimento. Para isso, esses usuários precisam conhecer a estrutura do banco de dados. Como exemplo de usuário especialista, você pode considerar o analista de negócio que utiliza o data warehouse e ferramentas de Business Intelligence. • Usuários finais Os usuários finais atuam no nível de visão. Eles manipulam os dados do banco de dados por meio de interfaces construídas pelos aplicativos das organizações em atendimento aos processos de negócio. Contudo, desconhecem a estrutura do SGBD. TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 27 4 POLÍTICA DE SEGURANÇA DA INFORMAÇÃO A informação é o elemento básico para que a evolução aconteça e o desenvolvimento humano se realize de forma completa (COURY, 2001 apud CARDOSO; OLIVEIRA, 2013). Para Campos (2007, p. 21), “a informação é elemento essencial para todos os processos de negócio da organização, sendo, portanto, um bem ou ativo de grande valor”. Dessa forma, é possível dizer que a informação é o coração que pulsa nas organizações. Portanto, diante de uma variedade de ameaças e vulnerabilidades, o DBA deve se preocupar com a confidencialidade, a integridade e a disponibilidade da informação. A confidencialidade é a garantia de que a informação pode ser acessada somente por pessoas autorizadas (ABNT, 2005). Se o acesso acontecer por pessoa não autorizada, ocorrerá a quebra de sigilo, o que pode acarretar danos para a organização. Como exemplo, considere o uso de senhas que não sejam de propriedade do usuário. A integridade é a garantia da exatidão e da completeza da informação e dos métodos de processamento (ABNT, 2005). Assim, “garantir a integridade é permitir que a informação não seja modificada, alterada ou destruída sem autorização, que ela seja legítima e permaneça consistente” (DANTAS, 2011, s. p.). Qualquer violação da informação ocasionará quebra de integridade. Por sua vez, a disponibilidade é a garantia de que os usuários autorizados obtenham acesso à informação e aos ativos correspondentes sempre que necessário (ABNT, 2005). A indisponibilidade por quaisquer motivos, voluntários ou não, acarreta quebra de disponibilidade. A gerência de usuários do banco de dados tem importância fundamental na definição de uma boa política de segurança. A vulnerabilidade se dá também a partir de equipamentos tecnológicos, mas principalmente a partir dos usuários. Isso potencializa a importância da inclusão de regras relacionadas ao comportamento e à postura dos usuários na implantação de uma política de segurança. Vamos lembrar que um o data warehouse, considerado a base para a business intelligence, é um armazém de dados utilizado para armazenar dados históricos dos sistemas. Normalmente, os dados são desnormalizados. Eles são utilizados somente para consultas, levando o grupo estratégico das empresas a tomar decisões baseadas em fatos, não em intuições e especulações. Por sua vez, a business intelligence é um processamento de dados que gera informações que embasam a tomada de decisão. Essas informações podem ser apresentadas em formato de relatórios ou dashboard. Para saber mais sobre a business intelligence, confira o trabalho de Moura “Business Intelligence” (de 2000) na íntegra em: https://qrgo.page.link/qzvp. DICAS 28 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS A Política de Segurança da Informação é um documento elaborado na empresa que contém normas, métodos e procedimentos que garantem a viabilidade e o uso dos ativos somente por pessoas autorizadas e que realmente necessitam deles para realizar as suas funções na organização (FONTES, 2008). Entre as seções da Política de Segurança da Informação, está a de controle de acesso, diretamente ligada aos usuários, pois é por meio da concessão de acesso que o usuário passa a ter visibilidade dos objetos e do ambiente do banco de dados. O acesso é fornecido ao usuário por meio de duas informações: nome de usuário, para identificar os usuários, e uma senha, para garantir o acesso restrito ao ambiente. É importante definir uma política de senhas a fim de proteger os dados do banco de dados. A política de senhas pode incluir regras de criação e atualização, como estas: • adotar prazo de validade para as senhas, obrigando o usuário a alterar a sua senha em um período determinado (30 dias, por exemplo); • estabelecer um critério de formação, por exemplo: tamanho, utilização de caracteres especiais, maiúscula e minúscula, mistura de números e letras etc.; • determinar, por uma lista, um conjunto de senhas proibidas; • não permitir a repetição de senhas já utilizadas; • buscar informações fáceis de memorizar, mas não utilizar datas comemorativas pessoais. A política pode ainda sugerir ao usuário atitudes como: • Não permitir que o observem enquanto digita a senha. • Não fornecer a senha a terceiros (a senha é intransferível e confidencial). • Ter cuidado para utilizar a senha em equipamentos confiáveis. Dessa forma, o DBA deve buscar conhecer os usuários e as suas necessidades de uso efetivo dos recursos do banco de dados para não gerar visibilidade desnecessária. Outro ponto importante refere-se à conscientização do usuário quanto à importância do cumprimento dos pontos estabelecidos na política de segurança da informação. Há diversos movimentos educacionais focados em desenvolver esse tipo de conscientização. Para entender melhor a conscientização de usuários, acesse o link a seguir: https://qrgo.page.link/Uv4S DICAS TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 29 5 USO DE SCRIPTS Um script é um conjunto de instruções organizadas para a execução de um procedimento, denominado no MySQL de processamento batch. Em síntese, o script é um arquivo de texto com a extensão. SQL gerado a partir de softwares de edição. No caso de bancos de dados, utiliza-se o script para escrever as instruções a realizar, agilizando a execução e gerando uma documentação. O uso de scripts favorece também a reutilização. Esse recurso pode ser utilizado, por exemplo, em um conjunto de procedimentos que devem ser rodados várias vezes, como rotinas bimestrais de verificação de existência de usuários inativos. Considere que a criação de um usuário implica a concessão de privilégios a várias tabelas. Toda vez que se cria um usuário, as permissões devem ser atribuídas. Dessa forma, para não ter de montar o conjunto de instruções sempre que cria um usuário, você pode criar um script: QUADRO 1 – INSTRUÇÕES FONTE: O autor Todo comando oferecido pelo SGBD MySQL pode ser usado em um script. Toda instrução deve estar em uma linha e deve haver ponto e vírgula (;) ao final da linha para identificar o fim do comando. O Manual de Referência do MySQL 8.0 elenca os motivos a seguir para se utilizar um script (MYSQL, 2019a). • utilizar consulta frequentemente e evitar redigitação dos comandos; • reaproveitar instruções já existentes, adaptando-as a novas necessidades; • otimizar tempo na correção de arquivos extensos. Imagine que você tem 40 linhas de comandos e que ocorre um erro no comando 20. Se você não tiver os comandos em script, terá de redigitar os 19 comandos que já haviam sido executados sem erro. 30 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTOE ADMINISTRADOR DE BASE DE DADOS A execução do arquivo script se dá por meio do MySQL interativo, a partir da commandline, em arquivo script e a partir de um script shell. Veja a seguir. • Por meio do MySQL interativo O comando para a execução do script é: SOURCE <endereço>nomeArquivo Script.sql. O endereço é a localização do arquivo no disco. Recomenda-se sempre utilizar o endereço completo. Quando o endereço é omitido, o arquivo de script será procurado somente no diretório padrão, ou seja, onde foi submetida a execução. Por exemplo: Source C:\Program Files\Microsoft\mySQL\scripts\ criausuario.sql • A partir da commandline A submissão a partir da commandline implica a utilização do cliente mysql. Deve-se ter uma conexão ativa. Veja: mysql -u root -p <C: \ Usuários \ Usuário \ Desktop \ nomeArquivoScript.sql Em casos de erros, o script para e não executa as instruções a partir do erro. Em alguns casos, é possível permitir a execução mesmo em casos de erro. Nessas condições, deve-se utilizar o parâmetro -f ou --f. Veja: mysql -u root -p <C: \ Usuários \ Usuário \ Desktop \ nomeArquivoScript.sql - f ou mysql -u root -p <C: \ Usuários \ Usuário \ Desktop \ nomeArquivoScript.sql --f • Em arquivo script Um arquivo script pode executar o comando SOURCE para acionar outros scripts durante a execução, mas isso não é aconselhável. • A partir de um script shell A linha de execução do script SQL pode ser uma linha de comando em um arquivo shell. Dessa forma, é possível utilizar algoritmos para atender a necessidades, com instruções de decisão e repetição. Veja um exemplo: TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 31 • Procedimentos adicionais O resultado da execução dos comandos pode: • ser mostrado em um pager por meio do parâmetro |more; • SOURCE <endereço>nomeArquivoScript.sql | more; • ser gravado em um arquivo, mas para isso deve-se fornecer o nome do arquivo na execução do script; • SOURCE <endereço>nomeArquivoScript.sql > arquivoSaida.out. Para gerar o formato de saída interativo, deve-se usar mysql -t. Já para apresentar na tela a saída das instruções que são executadas, deve-se usar mysql -v. • Manutenção de usuários No banco de dados, todos os usuários devem ser identificados para ter acesso aos recursos. Dessa forma, o DBA tem como função manter os usuários no sistema de banco de dados. Para manter o usuário, o SGBD, por meio da linguagem de consulta estruturada (Structured Query Language [SQL]), disponibiliza recursos para criação, alteração e exclusão. Aqui, você deve considerar a sintaxe apresentada pelo SGBD MySQL, mas todos os demais SGBDs possuem instrução semelhante, visto que a SQL é padronizada pelo Instituto Americano de Padronização (ANSI), o que a torna uma linguagem padrão para os bancos de dados que a utilizam. Script shell (ou simplesmente script) é um arquivo, executado pelo nome, que contém uma sequência de um ou mais comandos. Há vários programas shell: Bourne Shell, Korn Shell e C Shell. DICAS 32 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS • Criação de Usuários A criação de um usuário nos SGBDs é efetivada por meio do comando CREATE USER. O DBA deve definir o perfil do usuário para atribuir-lhe a melhor configuração. É recomendado definir um padrão de utilização para o ambiente, de acordo com as necessidades de operação. As opções de configuração do CREATE USER são apresentadas na seguinte sintaxe: CREATE USER [IF NOT EXISTS] nomeUsuario [opçãoAutenticação] [, nomeUsuário [opçãoAutenticação]] ... DEFAULT ROLE nomeLista [, nomeLista ] ... [REQUIRE {NONE | opçãoTLS [[AND] opçãoTLS] ...}] [WITH opçãoRecurso [opçãoRecurso] ...] [opçãoSenha | opçãoBloqueio] ... O nomeUsuário representa a identificação e o nome do host. A identificação e o nome do host devem estar entre aspas e separados pelo caractere especial @. Assim: ‘identificação’@’nomeHost’. A formação do nomeUsuario pode ser com letras, números e caracteres especiais. Além disso, a opção Autenticação define o método de autenticação: IDENTIFIED BY ‘senha’ | IDENTIFIED BY PASSWORD ‘senhaHash’ | IDENTIFIED WITH pluginAutenticação | IDENTIFIED WITH pluginAutenticação AS ‘senhaHash’ A seguir, veja as definições. • IDENTIFIED BY: servidor atribui plug-in implicitamente e atribui a senha especificada. • IDENTIFIED BY PASSWORD: servidor atribui plug-in implicitamente e atribui o valor hash (obtido pelo método password()) a uma string que deseje a senha. • IDENTIFIED WITH: servidor atribui plug-in especificado e a conta não tem senha. Caso você tenha dúvidas na composição dos comandos SQL, sempre busque as informações disponíveis no site oficial de documentação do SGBD que escolher. IMPORTANT E TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 33 • IDENTIFIED WITH pluginAutenticação AS ‘senhaHash’: servidor atribui plug-in especificado e a conta não tem senha. Armazena a senhaHash, se informada. • DEFAULT ROLE nomeLista [, nomeLista ] ...: define a lista de funções que deverão estar ativas após a autenticação do usuário. A lista de funções equivale à inclusão de um usuário a um grupo. • Opção TLS: especifica opções relacionadas à conexão. Quando usado o parâmetro NONE a conta não possui requisito SSL ou X 509. Veja: SSL | X509 | CIPHER 'cipher' | ISSUER ‘emissor’ | SUBJECT ‘objeto’ Opção recurso: define limite no uso de recursos do servidor. Veja: MAX_QUERIES_PER_HOUR valor | MAX_UPDATES_PER_HOUR valor | MAX_CONNECTIONS_PER_HOUR valor | MAX_USER_CONNECTIONS valor Opção senha: define parâmetros para gerenciamento de senhas. Veja: PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY] | PASSWORD HISTORY {DEFAULT | N} | PASSWORD REUSE INTERVAL {DEFAULT | N DAY} | PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL] Opção bloqueio: bloqueia e desbloqueia contas. Veja: ACCOUNT LOCK | ACCOUNT UNLOCK Suponha que, em um ambiente, o DBA definiu que todo usuário final, quando criado, tem a seguinte configuração em sua conta: • deve participar do grupo USUARIOSVISAO; • é obrigado a criar uma nova senha no primeiro acesso; • pode reutilizar senhas em um espaço de 60 dias; • pode exigir redefinição de senha a cada 30 dias. 34 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS O comando de criação do usuário, segundo a especificação, seria: CREATE USER ‘ana.silva’@'localhost' IDENTIFIED BY ‘123456’. DEFAULT ROLE USUARIOSVISAO PASSWORD EXPIRE PASSWORD REUSE INTERVAL 60 DAY PASSWORD EXPIRE INTERVAL 30 DAY; • Alteração de usuários A alteração de um usuário nos SGBDs é efetivada por meio do comando ALTER USER, cujas opções de configuração são apresentadas na seguinte sintaxe: O nome de contas de usuários é armazenado na tabela mysql_user. Cada linha da tabela identifica o usuário, o nome do host, o password e os privilégios. O SGBD trata a identificação do usuário como case sensitive, ou seja, diferencia letras maiúsculas de letras minúsculas. Já para o nome do host, isso não se aplica. IMPORTANT E ALTER USER [IF EXISTS] nomeUsuario [opçãoAutenticação] [, nomeUsuário [opçãoAutenticação]] ... [REQUIRE {NONE | opçãoTLS [[AND] opçãoTLS] ...}] [WITH opçãoRecurso [opçãoRecurso] ...] [opçãoSenha | opçãoBloqueio] ... ALTER USER [IF EXISTS] USER() opçãoAutenticaçãoUsuario ALTER USER [IF EXISTS] user DEFAULT ROLE {NONE | ALL | nomeLista [,nomeLista] ...} Onde: • nomeUsuário representa a identificação e o nome do host. • opçãoAutenticação define o método de autenticação. IDENTIFIED BY ‘identificação’ [REPLACE ‘identificaçãoAtual’] [RETAIN CURRENT PASSWORD] | IDENTIFIED WITH pluginAutenticação | IDENTIFIED WITH pluginAutenticação BY ‘senha’ [REPLACE ‘senhaAtual’] [RETAIN CURRENT PASSWORD] | IDENTIFIED WITH pluginAutenticação AS ‘senhaHash’ | DISCARD OLD PASSWORD TÓPICO 2 — GERENCIAMENTO DE USUÁRIOSE DE PRIVILÉGIOS NO BANCO DE DADOS 35 • Opção Autenticação Usuário modifica senhas. IDENTIFIED BY ‘senha’ [REPLACE ‘senhaAtual’] [RETAIN CURRENT PASSWORD] | DISCARD OLD PASSWORD • Opção TLS especifica opções relacionadas à conexão. Quando é usado o parâmetro NONE, a conta não possui requisito SSL ou X 509. SSL | X509 | CIPHER 'cipher' | ISSUER ‘emissor’ | SUBJECT ‘objeto’ • Opção Recurso define limite no uso de recursos do servidor. MAX_QUERIES_PER_HOUR valor | MAX_UPDATES_PER_HOUR valor | MAX_CONNECTIONS_PER_HOUR valor | MAX_USER_CONNECTIONS valor • Opção Senha define parâmetros para gerenciamento de senhas. PASSWORD EXPIRE [DEFAULT | NEVER | INTERVAL N DAY] | PASSWORD HISTORY {DEFAULT | N} | PASSWORD REUSE INTERVAL {DEFAULT | N DAY} | PASSWORD REQUIRE CURRENT [DEFAULT | OPTIONAL] • Opção Bloqueio bloqueia e desbloqueia contas. ACCOUNT LOCK | ACCOUNT UNLOCK Por exemplo, suponha que, em um ambiente, o DBA resolveu que a partir de hoje todos os usuários deverão trocar as suas senhas e estar inseridos nos grupos VENDEDOR e ASSISTENTE. O comando de alteração do usuário, segundo a especificação, seria: ALTER USER ‘ana.silva’@'localhost' DEFAULT ROLE VENDEDOR, ASSISTENTE PASSWORD EXPIRE; 36 UNIDADE 1 — SEGURANÇA, CONTROLE, GERENCIAMENTO E ADMINISTRADOR DE BASE DE DADOS • Exclusão de usuários A exclusão de um usuário nos SGBDs é efetivada por meio do comando DROP USER, cujas opções de configuração são apresentadas na seguinte sintaxe: DROP USER [IF EXISTS] nomeUsuario [,nomeUsuario] ... A utilização da cláusula IF EXISTS implica o envio de um aviso em caso de erro na execução. Quando se exclui um usuário, todos os recursos disponibilizados a ele devem ser excluídos. No caso do SGBD MySQL, os privilégios são eliminados, mas o DBA deve se encarregar de excluir os objetos criados pelo usuário, pois essa não é uma operação realizada automaticamente. Sugere-se que os objetos utilizados na produção do negócio sejam criados com o usuário ADMIN, que não será eliminado, pois é o usuário criado na instalação do banco de dados. • Criação de listas Uma lista representa um usuário com várias funções autorizadas para uso. Depois que o usuário é criado, é possível inseri-lo em listas por meio da cláusula DEFAULT ROLE. A definição das listas deve ser estabelecida a partir do tipo de visibilidade que o conjunto de usuários pode ter dos objetos. A administração de listas facilita a manutenção e padroniza o uso dos recursos, mas ela nem sempre é possível. Pode-se adicionar quantos usuários e/ou listas forem necessárias. A criação de uma lista é feita por meio do comando CREATE ROLE, como você pode ver a seguir: CREATE ROLE [IF NOT EXISTS nomeLista [, nomeLista] ... Como exemplo, suponha que os estagiários da área financeira de uma empresa devem ter a mesma visibilidade dos usuários do banco de dados. Pode- se criar uma lista para esses estagiários do departamento financeiro. Nesse caso, o comando seria: CREATE ROLE ESTAG-FIN; • Alteração de listas A alteração das configurações das listas deve ser realizada a partir do comando ALTER USER. TÓPICO 2 — GERENCIAMENTO DE USUÁRIOS E DE PRIVILÉGIOS NO BANCO DE DADOS 37 • Exclusão de listas A exclusão de listas é realizada a partir do comando DROP ROLE, conforme sintaxe a seguir: DROP ROLE [IF EXISTS] nomeLista [, nomeLista] ... 38 RESUMO DO TÓPICO 2 Neste tópico, você aprendeu que: • Os usuários finais somente acessam o banco de dados por meio de aplicações. Atuam no nível de visão. • O usuário especialista acessa os dados via aplicação e, também, consegue realizar consultas diretamente no banco de dados, por linguagens específicas. • O programador é o usuário que constrói as aplicações para acesso ao banco de dados e o DBA é o profissional responsável pela manutenção do banco de dados. • O analista de sistemas é um profissional da área de tecnologia, mas é responsável pela definição das aplicações que utilizarão os dados. • Confidencialidade é a garantia de que a informação é acessível somente por pessoas autorizadas. • Quando NÃO se cumpre a confidencialidade é que existe quebra de sigilo da informação. Integridade é a garantia da exatidão e, também, completeza da informação e dos métodos de processamento. • Disponibilidade é a garantia de que os usuários autorizados obtenham acesso à informação e aos ativos correspondentes sempre que necessário. • São três os níveis de abstração: visão, conceitual e físico. • O nível de visão é o nível utilizado pelos usuários finais e é definido de acordo com as necessidades de informações de cada usuário ou grupo. • O nível de abstração lógico é utilizado pelos administradores do banco de dados para administração dos dados, e não para o gerenciamento do espaço de armazenamento. • O nível de abstração físico é considerado o nível mais baixo e apresenta os dados como são armazenados no banco de dados. O nível visão, o mais alto nível, é utilizado pelos usuários finais e apresenta somente o que é necessário. • Grupo é um recurso utilizado para facilitar a manutenção de usuários em um banco de dados. Ele agrupa usuários com o mesmo perfil. Não está relacionado com a comunicação entre usuários. O particionamento dos dados que serão acessados é inerente à gerência de usuário. A possibilidade de execução de procedimentos de forma concorrente é dada a todos os usuários, independentemente de ter grupos formados, pois o controle de transação é por usuário. 39 • FORCE, IMMEDIATE, AUTOMATIC E EXPIRE IMMEDIATE não são parâmetros do comando create user. Para expirar a senha no primeiro acesso ao parâmetro é EXPIRE. • A concessão de privilégio no SGBD é efetivada a partir do comando GRANT com o formato: GRANT <privilégio> ON <lista de nome de tabela> TO ‘USER001@’localhost’;. O REVOKE elimina privilégio e não concede. O create é utilizado para criar objetos e não privilégios para o objeto. • Para eliminar privilégios, o comando utilizado pelo SGBD é o REVOKE, com a sintaxe: REVOKE ALL [PRIVILEGES] [, GRANT OPTION] FROM nomeUsuario | nomePapel [,nomeUsuario | nomePapel, ...]. O comando DELETE é utilizado para apagar linhas dentro das tabelas. O comando DROP é para apagar objetos, como tabela, visão e índices. Portanto, como é para apagar todos os privilégios, utiliza-se o parâmetro ALL. • SELECT é o tipo de privilégio para realizar as consultas nas tabelas. UPDATE é o tipo de privilégio para alterar dados nas tabelas. ALTER é o comando usado para alterar características de objetos, como tabelas e usuários. LIST não é um comando adotado pelo SQL. MODIFY é um método utilizado para filtrar documentos. Portanto, os tipos de privilégios para consultar e alterar dados em uma tabela são SELECT e UPDATE. • Comandos SQL que dão acesso aos dados são instruções de consulta (SELECT), alteração (UPDATE), inserção (INSERT) e remoção (DELETE). Não existe o conceito de hierarquia entre grupos de usuários na administração de banco de dados. Não existe favorecimento aos usuários que pertencem ao grupo. Ter grupo facilita a gestão de privilégios. Privilégios não são restrições, mas sim autorizações. Não se diz o que o usuário não pode fazer, e sim o que ele pode fazer. Portanto, PRIVILÉGIOS são permissões que um grupo de usuários têm para a manipulação do banco de dados. • Comandos SQL que dão acesso aos dados são instruções de consulta (SELECT), alteração (UPDATE), inserção (INSERT) e remoção (DELETE). Não existe o conceito de hierarquia entre grupos de usuários na administração de banco de dados. Não existe favorecimento aos usuários que pertencem ao grupo. Ter grupo facilita a gestão de privilégios. Privilégios não são restrições, mas sim autorizações. Não se diz o que o usuário não pode fazer, e sim o que se pode fazer. Portanto, PRIVILÉGIOS são
Compartilhar