Prévia do material em texto
Esta obra é resultado da experiência do autor, adquirida em aulas ministradas em cursos de graduação e pós- graduação. O texto apresenta a base para entender a tecnologia de banco de dados que oferece suporte aos problemas de computação corporativa. O autor parte do princípio de que o iniciante no estudo de gerenciamento de banco de dados precisa entender os conceitos fundamentais sobre o assunto, assim como o modelo de dados relacionais. Com inúmeros exemplos e bancos de dados de amostra, o texto permite ao aluno adquirir capacidade para resolver, de forma sistemática, problemas básicos e avançados em formulação de consultas, modelagem de dados, normalização, gerenciamento de dados de aplicação e customização de aplicações de banco de dados. T Ó P I C O S I M P O R TA N T E S • Abordagem abrangente do Oracle 10g e SQL 2003, as aplicações mais recentes de banco de dados. • Informações novas sobre modelagem de dados e requisitos de sistema. • Material atualizado sobre normalização. • Enfoque especial em otimização de banco de dados físico. • Tendências mais atuais em data warehousing e data mining. • Abordagem profunda de computação distribuída. • Questões e problemas no final dos capítulos, além de resumo da sintaxe do SQL:2003. • Utilização do ER Assistant, uma ferramenta fácil de usar que oferece uma interface simples para criar e con- verter os diagramas entidade-relacionamento apresentados no livro. Projeto, Desenvolvimento de Aplicações e Administração de Banco de Dados apresenta as tecnologias fundamentais de banco de dados para cada ambiente de processamento e discute o relacionamento de cada tecnologia com os avanços do comércio eletrônico e da computação corporativa. Essas características fazem deste livro-texto uma ferramenta essencial para aquele que pretende tornar-se especialista em projeto e desenvolvimento de aplicações de banco de dados. Aplicações: Livro-texto para os cursos da área de Computação, como Engenharia de Computação, Ciência da Computação e Sistemas de Informação, nas disciplinas específicas de Banco de Dados e outras relacionadas a Desenvolvimento de Sistemas. Interessa também aos tecnólogos e aos profissionais que atuam na área de Desenvolvimento de Software utilizando as mais recentes e avançadas tecnologias de bancos de dados. Ideal para estudantes e profissionais que precisam desenvolver e man- ter aplicações baseadas em banco de dados. CRIE UMA BASE SÓLIDA PARA GERENCIAMENTO DE BANCO DE DADOS PROJETO, DESENVOLVIMENTO DE APLICAÇÕES & ADMINISTRAÇÃO DE BANCO DE DADOS PRO JETO , D ESEN VO LVIM EN TO D E A PLIC A Ç Õ ES & A D M IN ISTRA Ç Ã O D E BA N C O D E D A D O S M annino T E R C E I R A E D I Ç Ã O TRADUÇÃO DA TERCEIRA EDIÇÃO Michael V. ManninoVisite nosso site: www.mcgraw-hill.com.br9 2 6 0 2 0 1 ISBN 978-85-7726-020-1 7 8 8 5 7 7 TRADUÇÃO DA M284p Mannino, Michael V. Projeto, desenvolvimento de aplicações e administração de banco de dados [recurso eletrônico] / Michael V. Mannino ; tradução: Beth Honorato ... [et al.] ; revisão técnica: Antônio Fernandes Nunes Guardado, Sidney da Silva Viana. – 3. ed. – Dados eletrônicos. – Porto Alegre: AMGH, 2014. Editado também como livro impresso em 2008. ISBN 978-85-8055-363-5 1. Banco de dados – Gerenciamento – Programas de computador. 2. Projeto de banco de dados. 3. Software de aplicativos – Desenvolvimento. I. Título. CDD 005.74 CDU 004.658 Catalogação na publicação: Ana Paula M. Magnus – CRB 10/2052 481 Capítulo 14 Administração de Dados e de Banco de Dados Objetivos de Aprendizagem Este capítulo oferece uma visão geral das responsabilidades e ferramentas dos especialistas em banco de dados conhecidos por administradores de dados e administradores de banco de dados. No final deste capítulo, o estudante deverá ter adquirido os seguintes conhecimentos e habilidades: • Comparar e contrastar as responsabilidades dos administradores de banco de dados e administradores de dados. • Controlar bancos de dados usando instruções SQL em prol da segurança e integridade. • Gerenciar gatilhos e procedimentos armazenados. • Compreender os papéis das tabelas dos dicionários de dados e o dicionário de recursos de informação. • Descrever o processo de planejamento de dados. • Compreender o processo para escolher e avaliar SGBDs. • Adquirir uma visão sobre os ambientes de processamento nos quais a tecnologia de banco de dados é utilizada. Visão Geral Utilizando o conhecimento e as habilidades das partes 1 a 6, você provavelmente terá capaci- dade para desenvolver bancos de dados e implementar aplicações que usam banco de dados. Você obteve informações sobre modelagem conceitual de dados, projeto de banco de dados re- lacional, formulação de consultas, desenvolvimento de aplicações com visões, procedimentos armazenados, gatilhos e desenvolvimento de banco de dados usando requisitos representados como visões. A Parte 7 complementa essas áreas de conhecimento e habilidade explorando questões e habilidades concernentes ao gerenciamento de banco de dados em diferentes ambi- entes de processamento. Este capítulo descreve as responsabilidades e as ferramentas dos es- pecialistas em dados (administradores de dados e administradores de bancos de dados) e fornece uma introdução aos diferentes ambientes de processamento de banco de dados. Antes de conhecer os detalhes dos ambientes de processamento, você precisa com- preender o contexto organizacional no qual os bancos de dados se encontram e conhecer as ferramentas e os processos para gerenciá-los. Este capítulo primeiramente examina um con- texto organizacional para banco de dados. Você obterá informações sobre o suporte do banco de dados para o gerenciamento da tomada de decisão, os objetivos do gerenciamento de 14manCap14.qxd 24.10.07 11:51 Page 481 482 Parte Sete Gerenciamento de Ambientes de Banco de Dados recursos de informação e as responsabilidades dos administradores de dados e de banco de dados. Após a explanação do contexto organizacional, este capítulo apresenta novos proces- sos e ferramentas para o gerenciamento de banco de dados. Você aprenderá instruções SQL para segurança e integridade, gerenciamento de gatilhos e procedimentos armazenados e manipulação do dicionário de dados, bem como processos para o planejamento de dados e seleção de SGBDs. Este capítulo é finalizado com uma introdução aos diferentes ambientes de processamento, os quais serão apresentados mais detalhadamente nos outros capítulos da Parte 7. banco de dados operacional um banco de dados para dar suporte às funções diárias de uma organização. Hierarquia gerencial Alta (estratégia) Fontes de dados externos e dados resumidos, bancos de dados táticos Bancos de dados operacionais resumidos e integrados Bancos de dados operacionais individuais Bancos de dados operacionais Média (tática) Baixa (operacional) FIGURA 14.1 Apoio do Banco de Dados para os Níveis de Gerência 14.1 Contexto Organizacional para o Gerenciamento de Banco de Dados Esta seção revisa os níveis de tomada de decisão gerencial e discute o suporte do banco de dados para a tomada de decisão em todos os níveis. Após essa ambientação, esta seção des- creve a função do gerenciamento de recursos de informação e as responsabilidades dos espe- cialistas em dados no gerenciamento desses recursos. 14.1.1 Utilização do Banco de Dados como Suporte para a Tomada de Decisão Gerencial Os bancos de dados fornecem suporte às operações de negócio e à tomada de decisão geren- cial em vários níveis. As grandes organizações, em sua maioria, desenvolveram vários ban- cos de dados operacionais para ajudar a conduzir seus negócios com eficácia. Os bancos de dados operacionais oferecem assistência direta às principais funções organizacionais, como processamento de pedidos,manufatura, contas a pagar e distribuição de produtos. Os fatores que justificam o investimento em um banco de dados operacional em geral são: maior ve- locidade de processamento, maior volume de negócios e menores custos com pessoal. À medida que as organizações conseguem aprimorar suas operações, elas começam a perceber o potencial para tomada de decisão de seus bancos de dados. Os bancos de dados operacionais oferecem a matéria-prima para a tomada de decisão gerencial, como descrito na Figura 14.1. Os níveis inferiores de gerência podem obter relatórios sobre exceções e proble- mas diretamente dos bancos de dados operacionais. Entretanto, maior valor deve ser adi- cionado para alavancar os bancos de dados operacionais para a alta e média gerência. Os ban- cos de dados operacionais devem ser limpos e organizados, integrados e resumidos para proporcionar valor para a tomada de decisão tática e estratégica. A integração é necessária porque os bancos de dados operacionais em geral são desenvolvidos isoladamente, sem levar em consideração as necessidades de informação da tomada de decisão tática e estratégica. 14manCap14.qxd 24.10.07 11:51 Page 482 Capítulo 14 Administração de Dados e de Banco de Dados 483 A Tabela 14.1 fornece exemplos de gerenciamento de decisões e requisitos de dados. A baixa gerência lida com problemas de curto prazo relacionados com transações individuais. Os resumos periódicos dos bancos de dados operacionais e os relatórios de exceção ajudam o gerenciamento operacional. A média gerência, que se vale dos dados resumidos que são inte- grados nos bancos de dados operacionais, pode querer integrar os dados dos diferentes de- partamentos, fábricas e lojas de varejo. A alta gerência, que se vale dos resultados da análise da média gerência e das fontes externas de informação, necessita integrar os dados de modo que os clientes, os produtos, os fornecedores e outras entidades importantes possam ser lo- calizados em toda a organização. Além disso, os dados externos devem ser resumidos e inte- grados com os dados internos. 14.1.2 Gerenciamento de Recursos de Informação para o Gerenciamento do Conhecimento Em resposta aos desafios de alavancar bancos de dados operacionais e tecnologia da infor- mação para a tomada de decisão gerencial, ganhou corpo a filosofia do gerenciamento de re- cursos de informação. O gerenciamento de recursos de informação abrange o processamento, a distribuição e a integração de informações em toda a organização. Um dos elementos prin- cipais do gerenciamento de recursos de informação é o controle dos ciclos de vida da infor- mação (Figura 14.2). Cada nível de tomada de decisão gerencial e de operações de negócio tem seu próprio ciclo de vida da informação. Para que a tomada de decisão seja eficaz, os ci- clos de vida devem ser integrados para fornecer informações oportuna e consistentemente. Por exemplo, os ciclos de vida da informação das operações oferecem informações aos ciclos de vida da tomada de decisão gerencial. ciclo de vida da informação os estágios da transformação da informação em uma organização. O ciclo de vida da informação é exclusivo para cada entidade e deve ser gerenciado e integrado com os ciclos de vida em outras entidades. Armazenamento Aquisição Uso Disseminação Formatação Processamento Proteção FIGURA 14.2 Estágios Típicos do Ciclo de Vida da Informação TABELA 14.1 Exemplos de Tomada de Decisão Gerencial Nível Gerencial Exemplos de Decisão Requisitos de Dados Alto Identificar novos mercados e produtos; Previsões econômicas e tecnológicas; planejar o crescimento; realocar resumo de notícias; relatórios industriais; recursos nas divisões. relatórios de desempenho de médio prazo. Médio Selecionar fornecedores; fazer a previsão Tendências históricas; desempenho do de vendas, de estoque e de caixa; examinar fornecedor; análise do caminho crítico; os níveis de pessoal; preparar orçamentos. planos de curto e médio prazo. Baixo Montar escala de funcionários; corrigir Relatórios sobre problemas; relatórios de atrasos nos pedidos; identificar gargalos na exceções; escala de funcionários; resultados produção; monitorar o uso de recursos. da produção diária; níveis de estoque. 14manCap14.qxd 24.10.07 11:51 Page 483 484 Parte Sete Gerenciamento de Ambientes de Banco de Dados A qualidade dos dados é um fator especial do gerenciamento de recursos de informação em virtude de seu impacto sobre a tomada de decisão gerencial. Como discutido no Capítulo 2, a qualidade dos dados está relacionada a inúmeras dimensões, como correção, oportu- nidade, consistência, completude e confiabilidade. Normalmente, o nível de qualidade dos dados suficiente para as operações de negócio pode ser insuficiente para a tomada de decisão nos níveis de gerência superiores. Esse conflito é especialmente verdadeiro para a dimensão consistência. Por exemplo, a inconsistência na identificação de um cliente nos bancos de dados operacionais pode prejudicar a tomada de decisão no nível de gerência superior. O gerenciamento de recursos de informação enfatiza um ponto de vista sobre qualidade de dados de longo prazo para a organização como um todo com vistas a apoiar a tomada de deci- são gerencial. Nos últimos anos, tem havido um movimento para estender o gerenciamento de recursos de informação para o gerenciamento do conhecimento. Tradicionalmente, o gerenciamento de recursos de informação tem enfatizado a tecnologia no sentido de apoiar receitas pre- definidas para a tomada de decisão, em vez de a capacidade para reagir a um ambiente de negócios em constante mudança. Para ter êxito no atual ambiente de negócios, as organiza- ções devem enfatizar a reação e adaptação rápidas, em vez de planejamento. Para enfrentar esse desafio, o Dr. Yogesh Malhotra, famoso consultor gerencial, defende que as organizações devem desenvolver sistemas que facilitem a criação de conhecimento, em vez de o gerencia- mento da informação. Para a criação de conhecimento, ele é defensor de uma maior ênfase sobre o processamento de informações humanas e a dinâmica da organização para equilibrar a ênfase sobre a tecnologia, como mostrado na Figura 14.3. Essa visão do gerenciamento do conhecimento oferece um contexto para o uso da tecnolo- gia da informação para solucionar problemas corporativos. Não basta ter a melhor tecnologia da informação, é preciso alinhá-la com os elementos humanos e da organização. A tecnologia da in- formação deve ampliar a capacidade intelectual do indivíduo, compensar as limitações do processamento humano e apoiar a dinâmica organizacional positiva. 14.1.3 Responsabilidades dos Administradores de Dados e dos Administradores de Banco de Dados Novas responsabilidades gerenciais surgiram como parte do controle de recursos de infor- mação. Administrador de dados (DA, data administrator) é uma posição da média ou alta gerência que tem amplas responsabilidades pelo gerenciamento de recursos de informação. O administrador de banco de dados (DBA, database administrador) desempenha uma função de suporte cujas responsabilidades estão relacionadas aos bancos de dados individuais e aos SGBDs. A Tabela 14.2 compara as responsabilidades de ambas as funções. O administrador de dados vê os recursos de informação em um contexto mais amplo que o administrador de banco de dados. O primeiro considera todos os tipos de dados, estejam eles armazenados em bancos de dados relacionais, arquivos, páginas Web ou fontes externas. O segundo nor- malmente considera apenas os dados armazenados nos bancos de dados. gerenciamento do conhecimento aplicar a tecnologia da informação com as capacidades humanas de processamento de informações e os processos da organização para suportar uma rápida adaptação à mudança. Tecnologia Dinâmica da organização Processamento de informações humanas FIGURA 14.3 Três Pilares do Gerenciamento do Conhecimento 14manCap14.qxd 24.10.07 11:51 Page 484 Capítulo 14 Administração de Dados e de Banco de Dados 485 O desenvolvimento de ummodelo de dados corporativo é uma das responsabilidades mais importantes do administrador de dados. Ele oferece um modelo integrado de todos os bancos de dados da organização. Por causa de seu escopo, ele é menos detalhado que os ban- cos de dados individuais que ele engloba. Esse modelo concentra-se nos principais assuntos dos bancos de dados operacionais, e não no detalhamento completo, e pode ser desenvolvido para o planejamento de dados (que banco de dados desenvolver) ou como suporte à tomada de decisão (como integrar e resumir os bancos de dados existentes). A Seção 14.3 descreve em detalhes o planejamento de dados, ao passo que o Capítulo 16 descreve em detalhes o desenvolvimento de um modelo de dados corporativo como suporte à tomada de decisão. O ad- ministrador de dados em geral participa significativamente de ambos esses empreendimentos. As grandes organizações podem oferecer especialização em administração de dados e de banco de dados. No primeiro caso, a especialização pode ocorrer por tarefa e ambiente. Em relação à tarefa, os administradores de dados podem especializar-se em planejamento em contraste com o estabelecimento de políticas. Em relação ao ambiente, eles podem espe- cializar-se em ambientes como apoio a decisões e processamento de transações e em dados não tradicionais como imagens, textos e vídeo. No caso do administrador de banco de dados, a especialização pode ocorrer por SGBD, tarefa e ambiente. Por causa da complexidade da aprendizagem de SGDBs, os administradores de banco de dados normalmente se especia- lizam em um ou em poucos produtos. No que diz respeito à tarefa, a especialização em geral se divide entre modelagem de dados e avaliação de desempenho. Com respeito ao ambiente, a especialização em geral se divide entre processamento de transações e datawarehouses. Nas pequenas organizações, a fronteira entre a administração de dados e a administração de banco de dados é flexível. É provável que não haja posições distintas para administradores de dados e de banco de dados. A mesma pessoa pode desempenhar ambas as funções. À medida que as organizações evoluem, a especialização normalmente se desenvolve de modo que se criem funções distintas. TABELA 14.2 Responsabilidades dos Administradores de Dados e dos Administradores de Bancos de Dados Posição Responsabilidades Administrador de dados Desenvolve um modelo de dados corporativo. Estabelece padrões e políticas entre bancos de dados com relação à nomeação, ao compartilhamento de dados e à propriedade dos dados. Negocia prazos contratuais com os fornecedores de tecnologia da informação. Desenvolve planos de longo prazo de tecnologia da informação. Administrador de banco de dados Desenvolve conhecimento detalhado dos SGBDs individuais. Procura informações sobre o desenvolvimento de aplicações. Realiza a modelagem de dados e o projeto lógico de banco de dados. Faz cumprir os padrões de administração de dados. Monitora o desempenho do banco de dados. Realiza a avaliação técnica dos SGBDs. Cria instruções de segurança, integridade e processamento de regras. Concebe padrões e políticas relacionadas aos bancos de dados e SGBDs individuais. modelo de dados corporativo um modelo conceitual de dados de uma organização. Um modelo de dados corporativo pode ser usado para o planejamento de dados e o suporte à tomada de decisão. 14.2 Ferramentas de Administração de Banco de Dados Para cumprir as responsabilidades mencionadas na seção anterior, os administradores de banco de dados usam uma variedade de ferramentas. Você já obteve informações sobre ferramentas para modelagem de dados, projeto lógico de banco de dados, projeto físico de banco de dados, gatilhos e procedimentos armazenados. Algumas das ferramentas são instruções SQL (CREA- TE VIEW e CREATE INDEX), ao passo que outras fazem parte das ferramentas CASE para o desenvolvimento de banco de dados. Esta seção apresenta outras ferramentas para segurança, integridade e acesso a dicionários de dados, e examina o gerenciamento de gatilhos e procedi- mentos armazenados. 14manCap14.qxd 24.10.07 11:51 Page 485 486 Parte Sete Gerenciamento de Ambientes de Banco de Dados 14.2.1 Segurança A segurança está relacionada à proteção de um banco de dados contra acesso não autorizado e ações mal-intencionadas de devastação. Por causa do valor dos dados nos bancos de dados corporativos, há grande motivação por parte dos usuários não autorizados a ganhar acesso não autorizado a esses bancos. Os concorrentes se sentem muito motivados a acessar infor- mações confidenciais sobre planos de desenvolvimento de produtos, iniciativas de economia de custos e perfil de clientes. O desejo dos criminosos à espreita é furtar informações ainda não divulgadas sobre resultados financeiros e transações de negócio e dados confidenciais sobre clientes, como número de cartão de crédito. Os transgressores sociais e terroristas podem causar problemas e prejuízos significativos destruindo intencionalmente os registros de um banco de dados. Dado o uso crescente da Internet para a condução de negócios, con- correntes, criminosos e transgressores sociais têm cada vez mais oportunidade de compro- meter a segurança dos bancos de dados. Segurança é um tema amplo que envolve várias áreas. Existem os aspectos éticos e legais sobre quem pode acessar os dados e quando os dados podem ser divulgados. Existem redes, hardware, sistemas operacionais e controles físicos que aumentam os controles ofere- cidos pelos SGBDs. Existem ainda problemas operacionais relacionados com senhas, dis- positivos de autenticação e cumprimento da privacidade. Essas questões não são tratadas em maior profundidade porque estão além do escopo dos especialistas em SGBDs e bancos de dados. O restante desta subseção enfatiza as abordagens de controle de acesso e as instruções SQL para regras de autorização. Para o controle de acesso, os SGBDs ajudam a criação e a armazenagem de regras de au- torização e o cumprimento dessas regras quando os usuários tentam acessar o banco de dados. A Figura 14.4 mostra a interação desses elementos. Os administradores de banco de dados criam regras de autorização que definem quem pode acessar que parte de um banco de dados e para qual operação. O cumprimento das regras de autorização requer a autenticação do usuário e assegura que as referidas regras não foram violadas pelas solicitações de acesso (re- cuperação e modificação de informações do banco de dados). A autenticação ocorre quando um usuário se conecta pela primeira vez ao SGBD. As regras de autorização devem ser verificadas para cada solicitação de acesso. A abordagem mais comum de regras de autorização é conhecida por controle de acesso discricionário. Nesse tipo de controle, os usuários recebem direitos ou privilégios de acesso a partes específicas de um banco de dados. Para exercer um controle preciso, os privilégios em geral são especificados para visões, e não para tabelas ou campos. Os usuários podem receber permissão para ler, atualizar, inserir e excluir partes específicas de um banco de dados. Para simplificar a manutenção das regras de autorização, é possível conceder privilégios a grupos ou papéis, em vez de a usuários individuais. Pelo fato de os papéis serem mais estáveis que usuários segurança do banco de dados proteger bancos de dados contra acessos não autorizados e destruição mal-intencionada. regras de autorização definem usuários autorizados, operações permissíveis e partes acessíveis do banco de dados. O sistema de segurança do banco de dados armazena regras de autorização e as aplica para cada acesso ao banco de dados. controle de acesso discricionário os usuários recebem direitos ou privilégios de acesso a partes específicas de um banco de dados. O controle de acesso discricionário é o tipo mais comum de controle de segurança suportado por SGBDs comerciais. DBA Usuários Dicionário de dados Sistema de segurança do banco de dados Regras de autorização Autenticação, requisições de acesso FIGURA 14.4 Sistemade Segurança de um Banco de Dados 14manCap14.qxd 24.10.07 11:51 Page 486 Capítulo 14 Administração de Dados e de Banco de Dados 487 individuais, as regras de autorização que fazem referência a papéis exigem menor manutenção que as regras que fazem referência a usuários individuais. Os usuários são designados a papéis e recebem senhas. Durante o processo de login em um banco de dados, o sistema de segurança do banco de dados autentica os usuários e menciona os papéis aos quais eles pertencem. Os controles de acesso obrigatório são menos flexíveis que os controles de acesso dis- cricionários. Nas abordagens de controle obrigatório, a cada objeto é atribuído um nível de classificação e a cada usuário é atribuído um nível de autorização. Um usuário pode acessar um objeto se o seu nível de autorização oferecer acesso ao nível de classificação do objeto em questão. Os níveis comuns de autorização e classificação são confidencial, secreto e ultra-se- creto. As abordagens de controle de acesso obrigatório foram originalmente aplicadas em bancos de dados altamente sensíveis e estáticos para defesa nacional e coleta de informações secretas. Em virtude da limitada flexibilidade dos controles de acesso obrigatórios, apenas alguns SGBDs os aceitam. Entretanto, os SGBDs que são usados na defesa nacional e coleta de informações secretas devem aceitar controles obrigatórios. Além dos controles de acesso, os SGBDs aceitam encriptação de dados. A encriptação envolve a codificação de dados para obscurecer seu significado. Um algoritmo de encriptação modifica os dados originais (conhecidos por texto puro ou plaintext). Para decifrar os dados, o usuário fornece uma chave de encriptação para restaurar os dados encriptados (conhecidos por texto cifrado ou ciphertext) para o seu formato original (texto puro). Dois entre os algo- ritmos de encriptação mais comuns são o padrão de encriptação de dados e encriptação de chave pública. Pelo fato de o padrão de encriptação de dados poder ser quebrado por um poder computacional gigantesco, o algoritmo de encriptação de chave pública tornou-se a abordagem preferida. Instruções de Segurança do SQL:2003 O SQL:2003 oferece suporte a regras de autorização discricionária usando as instruções CREATE/DROP ROLE e as instruções GRANT/REVOKE. Quando se cria o papel, o SGBD concede o papel tanto ao usuário atual quanto ao papel atual. No Exemplo 14.1, os papéis Pro- fessorSI e ConsultorSI são concedidos ao usuário atual, enquanto o papel AdministradorSI é concedido ao papel do usuário atual. A cláusula WITH ADMIN significa que um usuário ao qual foi atribuído o papel pode atribuir o papel a outros usuários. A opção WITH ADMIN deve ser usada moderadamente porque oferece ampla liberdade de ação ao papel. Um papel pode ser suspenso com a instrução DROP ROLE. controle de acesso obrigatório uma abordagem de segurança de banco de dados para bancos de dados altamente sensíveis e estáticos. Um usuário pode acessar um elemento do banco de dados se o nível de autorização do usuário permite o acesso ao nível de classificação do elemento. EXEMPLO 14.1 Exemplos da Instrução CREATE ROLE (SQL:2003) CREATE ROLE ProfessorSI; CREATE ROLE AdministradorSI WITH ADMIN CURRENT_ROLE; CREATE ROLE ConsultorSI; Na instrução GRANT, você especifica os privilégios (consulte a Tabela 14.3), o objeto (tabela, coluna ou visão) e a lista de usuários autorizados (ou papéis). No Exemplo 14.2, o acesso SELECT é atribuído a três papéis (ProfessorSI, ConsultorSI, AdministradorSI), ao passo que o acesso UPDATE é dado apenas a AdministradorSI. Aos usuários individuais devem ser atribuídos papéis para que possam acessar a visão MediaGeralAlunoSI. TABELA 14.3 Explicação sobre os Privilégios Comuns do SQL:2003 Privilégio Explicação SELECT Consulta o objeto; pode ser especificado para colunas individuais UPDATE Modifica o valor; pode ser especificado para colunas individuais INSERT Adiciona uma nova linha; pode ser especificado para colunas individuais DELETE Exclui uma linha; não pode ser especificado para colunas individuais TRIGGER Cria um gatilho em uma tabela estipulada REFERENCES Menciona as colunas de uma determinada tabela nas restrições de integridade EXECUTE Executa o procedimento armazenado 14manCap14.qxd 24.10.07 11:51 Page 487 488 Parte Sete Gerenciamento de Ambientes de Banco de Dados A instrução GRANT pode também ser usada para designar usuários aos papéis, como mostrado nas três últimas instruções GRANT no Exemplo 14.2. Além de conceder os privi- légios da Tabela 14.3, um usuário pode ser autorizado a passar privilégios a outros usuários por meio da palavra-chave WITH GRANT OPTION. Na última instrução GRANT do Exem- plo 14.2, o usuário Smith pode conferir o papel AdministradorSI a outros usuários. A opção WITH GRANT deve ser usada com moderação porque oferece ampla liberdade de ação ao usuário. Para remover um privilégio de acesso, é usada a instrução REVOKE. Na última ins- trução do Exemplo 14.2, o privilégio SELECT é removido de ProfessorSI. A cláusula RES- TRICT significa que o privilégio é revogado apenas se ele não tiver sido concedido por mais de um usuário ao papel especificado. Segurança no Oracle e no Access O Oracle 10g estende as instruções de segurança do SQL:2003 com a instrução CREATE USER, papéis predefinidos e privilégios adicionais. No SQL:2003, a criação de usuário é tratada como implementação. Visto que o Oracle não depende do sistema operacional para a criação de usuário, ele oferece a instrução CREATE USER. O Oracle fornece papéis pre- definidos para usuários altamente privilegiados, incluindo o papel CONNECT, para a criação de tabelas em um esquema, o papel RESOURCE, para a criação de tabelas e objetos de apli- cação – por exemplo, procedimentos armazenados –, e o papel DBA, para o gerenciamento do banco de dados. Em relação aos privilégios, o Oracle faz distinção entre privilégios de sis- tema (independentes do objeto) e privilégios de objeto. A concessão de privilégios de sistema normalmente está reservada aos papéis altamente seguros em virtude das amplas conseqüên- cias que os privilégios de sistema podem causar, como mostrado na Tabela 14.4. Os privilé- gios de objeto do Oracle são semelhantes aos do SQL:2003, exceto que o Oracle fornece mais objetos que o SQL:2003, como mostrado na Tabela 14.5. Os SGBDs, em sua maioria, permitem restrições de autorização por objetos de apli- cação, como formulários e relatórios, além dos objetos de banco de dados permissíveis na instrução GRANT. Essas outras restrições de segurança geralmente são especificadas em in- terfaces proprietárias ou em ferramentas de desenvolvimento de aplicações, em vez de no SQL. Por exemplo, o Microsoft Access 2003 permite que se definam regras de autorização por meio da janela Permissões para Usuário e Grupo, como exibido na Figura 14.5. As per- missões para os objetos de banco de dados (tabelas e consultas armazenadas), bem como para os objetos de aplicação (formulários e relatórios), podem ser especificadas por meio dessa janela. Além disso, o SQL aceita as instruções GRANT/REVOKE semelhantes às instruções do SQL:2003, assim como as instruções CREATE/DROP para usuários e grupos. EXEMPLO 14.2 Definição de Visão e Instruções GRANT e REVOKE (SQL:2003) CREATE VIEW MediaGeralAlunoSI AS SELECT CPFAluno, NomeAluno, SobrenomeAluno, MediaAluno FROM Aluno WHERE Especializacao = ‘SI’: -- Concede privilégios aos papéis GRANT SELECT ON MediaGeralAlunoSI TO ProfessorSI, ConsultorSI, AdministradorSI GRANT UPDATE ON MediaGeralAlunoSI.MediaAluno TO AdministradorSI; -- Designa usuários aos papéis GRANT ProfessorSI TO Mannino; GRANT ConsultorSI TO Olson; GRANT AdministradorSI TO Smith WITH GRANT OPTION; REVOKE SELECT ON MediaGeralAlunoSI FROM ProfessorSI RESTRICT; 14manCap14.qxd 24.10.07 11:51 Page 488 Capítulo 14 Administração de Dados e de Banco de Dados 489 TABELA 14.4 Explicação sobre os Privilégios de Sistema Comuns do Oracle Privilégio de Sistema Explanação CREATE X, CREATE ANY X Cria objetosdo tipo X no esquema de alguém; CREATE ANY permite que se criem objetos em outros esquemas1 ALTER X, ALTER ANY X Altera objetos do tipo X no esquema de alguém; ALTER ANY X permite que se alterem objetos em outros esquemas. INSERT ANY, DELETE ANY, Insere, exclui, atualiza e seleciona em uma tabela de qualquer UPDATE ANY, SELECT ANY esquema DROP X, DROP ANY X Exclui objetos do tipo X no esquema de alguém. DROP ANY permite que se excluam objetos em outros esquemas ALTER SYSTEM, ALTER Emite comandos ALTER SYSTEM, comandos ALTER DATABASE DATABASE, ALTER SESSION e comandos ALTER SESSION ANALYZE ANY Analisa qualquer tabela, índice ou grupo TABELA 14.5 Mapeamento entre Privilégios e Objetos Comuns do Oracle Procedimento, Função, Privilégio/ Pacote, Biblioteca, Visão Objeto Tabela Visão Seqüência2 Operador, Tipo de Índice Materializada3 ALTER X X DELETE X X X EXECUTE X INDEX X INSERT X X X REFERENCES X X SELECT X X X X UPDATE X X X 1 Esquema é um conjunto de tabelas relacionadas e outros objetos Oracle que são tratados como uma unidade. 2 Seqüência é um conjunto de valores mantido pelo Oracle. As seqüências normalmente são usadas para chaves primárias geradas pelo sistema. 3 A visão materializada é armazenada, em vez de derivada. As visões materializadas são úteis em datawarehouses, como descrito no Capítulo 16. FIGURA 14.5 Janela Permissões para Usuário e Grupo no Microsoft Access 2003 14manCap14.qxd 24.10.07 11:51 Page 489 Encerra aqui o trecho do livro disponibilizado para esta Unidade de Aprendizagem. Na Biblioteca Virtual da Instituição, você encontra a obra na íntegra. Acesse na íntegra Parte 7 - Gerenciamento de Ambientes de Banco de Dados Capítulo 14 - Administração de Dados e de Banco de Dados