Administração Gerencial de Banco de Dados Conteúdo programático. Plataforma: SQL-Server. Administração. Gestão / Estrutura / Hierarquia – Profissionais – Objetos – Sistemas – Criação de usuários Integridade. Restrições / Grant – Revoke. Trabalho Prático, primeira parte Escolher um Banco para apresentar Oracle (DDL, DML, DQL, DCL) exer Trabalho. My SQL Post Grés é gratuito e é baseado no Oraclo. - Banco de Dados distribuídos - Arquitetura de Computadores - Objetivos / Aplicações Data Warehouse (DW). Arquitetura do ((DW(Data Mining)(Data Marts)) Segunda parte TP (DW) ERP. Normalização 1 EN, 2FN, 3FN Lista de exercicios + lista TP Primeira parte + Case prático BDD. São Paulo 18/02/2011. Sistema de gerenciamento de Banco de Dados. Conjunto de programas que permitem aos profissionais a criarem e manipularem dados no Banco de Dados. Assim permite: Definir Definir uma base de dados envolve especificação de tipos de dados a serem armazenados no Banco de Dados. Construir Para se construir uma base de dados é necessario seguir um processo que permita armazenar dados por um meio que o SGBD possa controla-los. Manipular Indicar a utilização das funções como consultar, recuperação de dados específicos, modoficação da base de dados para reflexão de mudança no case e geração de relatórios. Base de Dados Sistema de base de dados é formada pelo SW de gerenciamento e a Base de Dados. O sistema deve interagir com os usuários e os profissionais que atuam ou utlizam o sistema. Esquema usuários e programadores Sistema de base de dados Consultar/ programas de aplição Consultas/programas de aplicação SGBD SW para processar/consultar SW para Base de Dados Base Meta Base Características: Procedimento tradicional de arquivo Base de Dados Definição de dados programa aplicação Dependência entre aplicação específica Meta de Dados Vantagens da Base de Dados Eliminação de Redundância Capaz de Eliminação permitir diversas da aplicações Redundância Interdependência –Facilidades de de dados manutenção Representação Representação Facilidade dos dados do concentual de nível físico manutenção Cada visão é Permite múltiplas Facilidade implementada visões de consultas por módulo específico Capacidade do SGBD - Controle de Redundância Problemas: Duplicação de esforços Duplicação de espaço Inconsistência: Alteração, Arquivos / Não Alteração, Arquivos. Compartilhamento de dados Multiusuários Facilidade de definir visões e usuários Restrição de acessos multiusuários Acesso a todas as informações que necessita Operação de acesso. Recuperação e modificação devem ser controladas. Fornecer subsistema de autorização e segurança pelo DBA O DBA cria as contas, especifica e faz as restrições Fornecimento de múltiplas interfaces Linguagem de consultas para usuários ocasionais Linguagem de programação para programadores de aplicação Formulários Interfaces dirigidas por menus para usuários comuns Representação de Relacionamentos complexos entre dados Dados inter-relacionados. Reforçar Restrições de Integridade Especificar tipos de dados de cada item Restrição pelo SGBD Restrição semântica de dados do mini mundo Fornecer backup e restauração Restaurar caso aja falha {HW {SW. Vantagens Potencial para obrigar a padronização Flexibilidade Mudança {na estrutura {no requisito Redução de tempo de desenvolvimento de aplicação Tempo reduzido Projetar e implementar base de dados Nova aplicação de SGBD Estimado em ¼ e 1/6 do tempo de desenvolvimento Disponibilidade de informações atualizadas Passagens áreas Base bancaria Economia de escala Consolidação de dados e aplicações Redução de desperdícios e atividades relevantes Não utilizar SGBD quando... -Base de dados e aplicações simples, sem expectativa de mudanças -Existem restrições de tempo que não podem ser satisfeita pelo SGBD -Não há necessidade de acesso multiusuário Profissionais -Data Base Administrador (DBA) -Projetista de base de dados -Analistas de sistema e programador de aplicação -usuário final {Ocasional, Paramétrico, Sofisticado} -profissionais de apoio São Paulo 25/02/2011 Profissionais de Banco de Dados AGBD -Database Administrador (DBA) Supervisiona e gerencia recursos compartilhados que são subdivididos em: Primários (Base de dados) Secundários (SGBD) Autoriza acesso a base de dados, coorde3nando e monitorando seu uso. Soluciona problemas { -Quebra de segurança –Baixo Desempenho} -Projetistas de Base de Dados Identifica os dados a serem armazenados na base de dados e escolhe a estrutura apropriada para {Armazenar e Representar dados}. Estas tarefas são executadas antes que a base de dados seja implementada, responsabilidade de prever requisitos básicos ao projeto para que possa garantir acesso aos futuros usuários. Analistas de Sistemas e programadores de aplicação devem estar familiarizados com as capacidades fornecidas pelo SGBD para desempenhar essas tarefas. -Analistas de Sistemas Determinam os requisitos de usuários finais, especificamente dos usuários comuns e desenvolvem especificações das transações para atender a estes requisitos. -Programadores de aplicação Implementam estas especificações produzindo programas e então: Testam, Depuram, Documentam e mantém estes programas. Hierarquia DBA Projetista Analista Programador São Paulo, 18/03/2011 Profissionais Usuários finais: Existe profissionais que precisam ter acesso a base de dados para consultar, modificar e gerar relatórios. Categorias -Usuários ocasionais -Usuários comuns -Usuário sofisticado Usuário Ocasional: Profissionais que necessitam diferentes informações a cada vez ocasional que acessam a base de dados. Podem usar linguagem sofisticada para especificar suas requisições sendo tipicamente gerente Pleno ou Sênior. Usuário comum ou paramétrico: Realizam operações padrões de consulta e atualizações chamada, transações permitidas, que foram cuidadosamente programados e testados. Estes usuários constantemente realizam recuperações e modificações na base de dados. Profissionais de apoio -Projetistas e implementadores de SGBD -Desenvolvedores de ferramentas Usuários sofisticados Profissionais que estão familiarizados com SGBD e resolvem seus problemas complexos através de linguagem sofisticada, incluem engenheiros e analistas de negócios. Profissionais de apoio -Projetista e implementadores de SGBD -Desenvolvedores de ferramentas. -Operadores de manutenção Papeis de desempenho para servidores e mapeamento de grupos Vários com acesso ao SQL-Server devem ser limitados a certos acessos. Há sete funções desempenhadas pelos usuários para servidor. Sysadmin = Membros com essa função podem fazer o que quiserem no SQL-Server. Devemos nos precaver ao atribuir esta função a usuários com a plataforma, pois poderão causar sérios problemas. Destina-se apenas a administradores de Banco de Dados. Serveradmin = Usuários que configuram servidores: Quantidade de memória, SQL que pode ser usada ou qual a quantidade de informações a serem enviadas através da rede de um único frame. Tornar seus DBA’s assistentes membros desta função permitirá se livrar de parte das tarefas administrativas. Setupadmin = estes membros podem instalar replicas e gerenciar procedimentos armazenados estendidos (Usados para executar ação que não são nativas ao SQL). Também atribua este tipo de acesso a DBA’s assistentes. Securityadmin = Estes usuários gerenciam questões de segurança como criação e eliminação de logins, leitura de logs de auditoria e concessão de permissão aos usuários para criarem Banco de Dados. Processadmin = O SQL pode ser rolado em ambiente multitarefa, conseguindo fazer mais de um processo simultâneo. Gerenciar um processo para gravar em um cachê. Um membro do grupo processadmin pode terminar o processo (KILL) ou cancelar um processo no SQL. Função indicada a DBA’a assistentes e desenvolvedores. Os desenvolvedores precisam especificamente cancelar processos que tenham sido especificados erroneamente, ou consultar incorretas. DBCreator = Usuários podem criar ou fazer modificações em banco de dados. Função de DBA’s assistentes bem como desenvolvedores, que devem ser alterados para não criarem bancos desnecessários desperdiçando espaços em servidores. Diskadmin = Estes usuários gerenciam arquivos em disco, azem espelhamento de Banco de Dados e adicionam dispositivos de backup. DBS’s assistentes devem ser membros desta função. São Paulo 25/03/11 A partir do memento em que os usuários tiverem acesso ao banco através de uma banca de Banco de Dados você deve limitar o que poderão fazer neste banco atribuindo um papel (função) no Banco de Dados. DB-Ower: Membros desta função pode fazer DDL e DML com qualquer tabela de Banco de Dados. DB-Acessadmin: usuário tem autoridade para determinar quem ganha acesso ao Banco de Dados acrescentando ou eliminando usuários. DB-Datareader: Os membros podem ler dados de qualquer tabela do Banco de Dados. DB-Datawrinter: estes usuários podem acessar, modificar e eliminar dados de todas as tabelas de um banco de Dados. DB-Ddladmin: Os administradores DDl podem emitir todos os comandos DDl. (Ele só cria através de permissão). DB-Securityadmin: os membros aqui podem acrescentar ou eliminar usuários contidos em papéis para banco e gerenciar permissões sobre objeto e instruções. DB-Backupoperator: Estes usuários podem fazer backup de Banco de Dados. DB-Denydatareader: Os membros não podem ler os dados no Banco de Dados. DB-Denydatawrinter: Este usuário não pode fazer alterações em dados contidos no Banco de Dados, prem lhes é permitido ler os dados. Public; O objetivo deste grupo é conceder aos usuários do Banco de Dados um conjunto padrão de permissões num Banco de dados. Todos os usuários do Banco de Dados participam automaticamente deste grupo e não podem ser removidos. Segurança de Banco de Dados e transações Segurança é um item primordial que diferencia os Bancos de Dados. Por meio dos critérios rígidos de controle, podemos ter uma informação segura e que apenas usuários autorizados podem alterá-la. Embora os direitos variam de um Banco para outro, os comandos relacionados à atribuição e a revogação dos direitos são os mesmos. Normalmente os Bancos de Dados vêm com um ou dois usuários (SYS, System, DBA ou SA) que tem o poder sobre todo o Banco de Dados. Devemos utilizar esses usuários para criar outros usuários; estes receberão direitos de sistemas e concederão direitos de objetivo a outros usuários. Classificação de direitos Existem duas classificações de direitos de Banco de Dados. 1- Objeto: Diz respeito aos objetos que um schema posui. 2- Sistema: Diz respeito aos que se pode realizar no Banco de Dados. Schema: Representa um local onde se armazenam os objetos do Banco de Dados. Um Schema pode ser entendido como um usuário que detém o poder sobre os objetos do Banco de Dados Para criar um Schema, utilizamos o comando; CREATE SCKEMA nome do schema [Autorization usuário]; O padrão é que o schema pertença ao próprio usuário que o criou. São Paulo 01/04/11 Direitos de Sistema: Estes direitos variam em função do Banco de Dados. CONECT: Permite ao usuário conectar-se ao Banco de Dados. Usuários que não tem esse direito se quer pode acessar o Banco de Dados. RESOURCE: Permite ao usuário, alem de conectar-se criar objetos de Banco de Dados. DBA: Permite ao usuário controlar todos os objetos do Banco de Dados. É um diretório que deve ser concedido com muito cuidado e critério para evitar problemas ao Banco de Dados. Recomenda-se que apenas o Administrador do Banco o possua. PRIVILÉGIO DE SISTEMA ALTER CREATE DROP SELECT EXECUTE UPDATE USUÁRIO ÍNDICE PROCEDIMENTO TABELA VISÃO SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM SIM Atribuindo Direitos de Sistema: GRANT privilegio TO usuário [with Admin Option] Ex. GRANT connect TO fatec; Utilizamos a clausula WITH ADMIN OPTION dando direito ao usuário de transferir o mesmo direito recebido, a outros usuários. Revogando Direitos: REVOKE privilégio TO usuário; Direitos de Objetos: Como é o Schema que possui os objetos somente ele poderá conceder os direitos sobre seus objetos a outro usuários do Banco de Dados assim os demais usuários somente poderão realizar o que lhes for permitido pelo proprietário do objeto. PRIVILÉGIO DO OBJETO TABELA ALTER DELETE INSERT REFERENCES RENAME SELECT UPDATE SIM SIM SIM SIM SIM SIM SIM VISÃO SIM SIM SIM SIM SIM Tipos de Direitos: Existem seis tipos básicos de direitos de acesso. 1- SELECT: Permite extrair dados das tabelas ou visões. 2- INSERT: Permite incluir dados em tabelas ou visões. 3- UPDATE: Permite modificar linhas nas tabelas. 4- DELETE: Permite excluir linhas de tabelas e visões. 5- REFERENCES: Permite criar constrainte de chave estrangeira. 6- ALL PRIVILEGES: Concede todos os privilégios anteriores. Atribuindo Direitos de Objetos: GRANT Tipo_privilegio ON Tabela To{Usuário/PUBLIC} [WITH ADMIN OPTION]; Ex.1. GRANT SELECT ON cd TO Fatec; Ex. 2. GRANT SELECT ON Musica TO fatec; Whit Admin Option; Revogando Direitos de Objeto. Para revogar direitos anteriormente concedidos, utilizamos o comando REVOKE: REVOKE Tipo_privilégio ON Tabela TO Usuário; Ex. REVOKE SELECT ON cd TO Fatec; Para criarmos os logins e usuários em códigos: CREATE login nome Whit password = ‘1234’; USE Banco; CREATE USER NM FOR LOGIN nome WITH DEFAULT_SCHEMA = nm_schema; GRANT SELECT ON cd TO nm; AGBD – 01/04 Direitos de Sistema: estes direitos variam em função do banco de dados utilizado. CONNECT: permite ao usuário conectar-se ao banco de dados. Usuários que não tem esse direito sequer podem acessar o banco de dados. RECOURCE: permite ao usuário além de conectar-se, criar objetos de banco de dados. DBA: permite ao usuário controlar todos os objetos de bando de dados. É um direito que deve ser concedido com muito critério para evitar problemas ao bando de dados. Recomenda-se que apenas o administrador do banco de dados o possua Privilégio de Sistema Usuario Indice Procedime nto Tabela Visão AFTER Sim Sim Sim Sim CREATE Sim Sim Sim Sim Sim DROP Sim Sim Sim Sim Sim Sim SELECT Sim EXECUT E Sim UPDATE Atribuindo direitos de sistema GRANT privilégio TO usuário [widht admin option] Exemplo.: GRANT CONNECT TO FATEC; Utilizamos a clausua with admin option dando direito ao usuário de transferir o mesmo direito recebido, a outros usuários Revogando direitos REVOKE privilégio TO usuário Direitos de objeto: Como é o schema que possui os objetos somente ele poderá conceder os direitos sobre seus obejtos a outros usuários do banco de dados. Assim os demais usuários somente poderão realizar o que lhes for permitido pelo proprietario do objeto. Privilégio do objeto Tabela Alter Sim Delete Sim Sim Insert Sim Sim References Sim Rename Sim Sim Select Sim Sim Update Sim Sim Tipos de direitos: Existem seis tipos básicos de direitos de acesso: 1. Select: permite extrar dados das tabelas ou visões 2. Insert: Permite incluir dados em tabelas ou visões 3. Update: Permite modificar linhas na tabelas 4. Delte: Permitee excluir linhas de tabelas ou visões 5. References: Permite criar CONSTRAINT de chave estrangeira 6. All Privileges: oncedo todo os privilégios anteriores. Visão Atribuindo direitos de objeto: GRANT tipo_privilégio ON tabela TO {Usuário|Public} with admin option; Exemplo.: 1) GRANT SELECT ON cd TO fatec; 2) GRANT SELECT ON musica TO fatec with admin option; Revogando direitos de objeto Para revogar direitos anteriormente concedidos, utilizamos o comando REVOKE; REVOKE tipo_privilégio ON tabela TO usuario Exemplo.: REVOKE SELECT ON cd TO fatec Para criamos os logins de usuários em código: GREATE LOGIN nome WITH PASSWORD: '1234', USE banco; CREATE USER nm FOR LOGIN nome WITH DEFAULT_SCHEM=nm_schema; GO;