Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de dados II Prof. Odair Moreira de Souza Unidade 01 Encontro 03 Recapitulando • Revisão de Banco de Dados I: • Conceitos de Banco de Dados; • Tipos de Banco de Dados; • Sistema de Banco de Dados; • Características de um SGBD; • Arquitetura de SGBD; • Projeto Conceitual; • Projeto Lógico; • Projeto Físico 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 2 Cronograma de Aula •SQL •Comandos SQL • DDL, DML, DCL e DQL •Privilégios de Usuários •Gerenciamento de Usuários • CREATE, RENAME e DROP USER • GRANT e REVOKE 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 3 SQL •Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional. • Baseada na álgebra relacional; • Desenvolvida nos anos 70 pela IBM; • Tinha por objetivo demonstrar a viabilidade da implementação do modelo relacional proposto por Edgar Codd. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 4 Características SQL • A linguagem SQL é um grande padrão de banco de dados. • Por ser uma linguagem declarativa (não procedural), uma consulta SQL especifica a forma do resultado e não o caminho para chegar a ele. • Em 1986/87 a linguagem SQL foi padronizada pela ANSI e ISO sendo revisada nos anos de 1992, 1999 e 2003. • Quase totalmente independendo de plataforma ; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 5 Comandos SQL • A linguagem SQL é dividida em subconjuntos de acordo com as operações que se deseja efetuar sobre um banco de dados. • Os principais subconjuntos são: • DDL - Data Definition Language (Linguagem de Definição de Dados) • Principais comandos: CREATE, ALTER e DROP • DML - Data Manipulation Language (Linguagem de Manipulação de Dados) • Principais comandos: SELECT, INSERT, UPDATE, DELETE, TRUNCATE e outros. • DCL - Data Control Language (Linguagem de Controle de Dados) • Principais comandos: GRANT, REVOKE e SET. • DQL – Data Query Language (Linguagem de consulta de Dados) • Principais comandos: SELECT 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 6 DDL • O conjunto de comandos da linguagem DDL é usado para a definição das estruturas de dados, fornecendo as instruções que permitem a criação, modificação e remoção de objetos de banco de dados (base de dados, esquemas, tabelas, índices etc.). • Os bancos de dados comerciais tem extensões proprietárias no DDL. • Os comandos básicos da DDL são: • CREATE: cria um objeto (uma Tabela por exemplo) dentro da base de dados. • DROP: apaga um objeto do banco de dados. • ALTER: permite ao usuário alterar um objeto, por exemplo, adicionando uma coluna a uma tabela existente. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 7 DML • É o grupo de comandos dentro da linguagem SQL utilizado para a recuperação, inclusão, remoção e modificação de informações em bancos de dados. • Os comandos básicos da DML são: • SELECT: permite ao usuário especificar uma consulta ("query") como uma descrição do resultado desejado. • INSERT: é usada para inserir um registro (formalmente uma tupla) a uma tabela existente. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 8 DML • UPDATE: para mudar os valores de dados em uma ou mais linhas da tabela existente. • DELETE: permite remover linhas existentes de uma tabela. • TRUNCATE: remove rapidamente todas as linhas da tabela, esvaziando-a. • COMMIT: efetiva a transação atualmente executada. • ROLLBACK: desfaz a transação corrente, fazendo com que todas as modificações realizadas pela transação sejam rejeitadas. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 9 DCL • Conjunto de comandos que permitem ao administrador de banco de dados gerenciar os aspectos de autorização de dados e licenças de usuários para controlar quem tem acesso para ver ou manipular dados dentro do banco de dados. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 10 DCL • Alguns exemplos de comandos DCL são: • GRANT: • concede privilégios a um ou mais usuários para acessar ou realizar determinadas operações em um objetos de dados. • REVOKE: revoga (remove) ou restringe a capacidade de um usuário de executar operações. • SET: Define parâmetros em tempo de execução, como por exemplo, o tipo de codificação do cliente e o estilo de representação de data e hora. • LOCK: Bloqueia explicitamente uma tabela fazendo o controle de acessos concorrente. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 11 DQL •SELECT: • Obtém registros especificados de uma ou mais tabelas. (consulta) 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 12 Privilégios de Usuários Gerenciando contas de Usuários •Principal tarefa para garantir a segurança de um banco de dados; • criação de usuários e exclusão usuários; • configuração de permissões de acesso (privilégios) aos bancos de dados e a eventual exclusão de usuários do sistema. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 14 Privilégios de Usuários • Os dados referentes aos privilégios dos usuários do SGBD MySQL, alterados pelas instruções GRANT e REVOKE são armazenados no banco de dados denominado mysql. • Cinco tabelas no banco de dados mysql têm relação com privilégios de usuários : • user • db • host • tables_priv • columns_priv 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 15 Privilégios de Usuários • Estas tabelas podem ser consultadas para solucionar eventuais problemas referentes a privilégios . • Ao invés de usar os comandos GRANT e REVOKE o administrador pode modificar diretamente as tabelas . • Porém, neste caso, para que as alterações entrem em vigor, precisará executar a instrução : • flush privileges ; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 16 Tabela user • A tabela USER contém informações sobre o conjunto de privilégios globais de um usuário. • Colunas de escopo: • Usadas para determinar quando uma linha é relevante. As colunas de escopo são: host, user e password. • Colunas de Privilégios: • Cada uma corresponde a um dos privilégios globais. Podem ter o valor Y ou N. As colunas são com sufixo "_priv". 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 17 Tabela user • Colunas de conexão segura: • Representam as informações da cláusula REQUIRE da instrução GRANT . As colunas são : ssl_type , ssl_cypher , x509 _issuer e x509 _subject . • Colunas de limite de recursos : • Representam qualquer limite no uso de recursos especificados no final da cláusula GRANT . As colunas são : max_questions , max_updates e max_connections . 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 18 Tabela user •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 19 Arquivo: gerenciamentoUsuarios.sql Tabela db •A tabela db armazena os privilégios de um usuário para determinado banco de dados . Esta tabela contém as seguintes colunas: • Colunas de escopo: • U sadas para determinar quando uma linha é relevante . Caso as regras sejam diferentes para cada um dos hosts o campo deve ser deixado em branco e as regras devem ser declaradas na tabela host . • As colunas de escopo são : Host , Db e User. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 20 Tabela db •Colunas de privilégios: • Especificam se a combinação Host, DB e User têm cada um dos privilégios listados. Podem ter o valor Y ou N .• Algumas colunas de privilégios são: • Select_priv, • Insert_priv, • Update_priv, • Delete_priv, • etc. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 21 Tabela db •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 22 Arquivo: gerenciamentoUsuarios.sql Tabela host •A tabela host é consultada quando o MySQL encontra uma entrada em branco na coluna Host da tabela db. esta rabela contém as seguintes colunas: • Coluna de escopo: • Determina quando uma linha é relevante. Cada linha tem informações para um único banco de dados acessar a partir de um host. As colunas são: Host e Db; • Colunas de privilégios: • São os privilégios do Host e Db, que pode ser Y ou N. Algumas colunas de previlégios são: Select_priv, Insert_priv, Update_priv, Delete_priv, etc 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 23 Tabela host •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 24 Arquivo: gerenciamentoUsuarios.sql Tabela tables_priv •A tabela tables_priv apresenta o conjunto de privilégios de usuário com relação às tabelas individuais. As colunas são: •Colunas de escopo: • Usadas para determinar quando uma linha é relevante . Cada linha fornece informações para um único banco de dados acessar a partir de um host . As colunas de escopo são : • Host , Db , User e Table_name. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 25 Tabela tables_priv • Colunas de concessão: • Especificam que concedeu o privilégio e quando. As colunas de concessão são: • Grantor e Timestamp. • Coluna Table_priv: • Determina quais privilégios a combinação Host , Db e User têm na tabela listada em Table_name. Pode conter os seguintes valores: • Select, Insert, Update, Delete, Create, Alter, Drop, Grant, References e Index. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 26 Tabela tables_priv •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 27 Arquivo: gerenciamentoUsuarios.sql Tabela columns_priv • A tabela columns_priv tem os privilégios de usuários com relação às colunas individuais. esta tabela contém as seguintes colunas: • Coluna de escopo: • Usadas para determinar quando uma linha é relevante. Cada linha fornece informações para um único banco de dados acessar a partir de um host. • As colunas de escopo são : Host , Db , User , Table_name e Column_Name. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 28 Tabela columns_priv •Coluna Column_priv: • Informa quais privilégios foram concedidos para a combinação determinada nas colunas de escopa. Pode conter os seguintes valores : Select , Insert , Update e References . • Coluna Timestamp : • Informa quando o privilégio foi concedido. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 29 Tabela columns_priv •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 30 Arquivo: gerenciamentoUsuarios.sql Criação de Usuários SELECT User •Consulta à tabela interna User para descobrir os usuários existentes e a partir de qual host eles podem se conectar aos bancos de dados. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 32 SELECT User •Consultando a coluna User e host da tabela mysql.user •SELECT User, Host FROM mysql.user; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 33 CREATE USER • CREATE USER •cria uma conta de usuário do banco de dados; • Adiciona um novo usuário ao agrupamento de bancos de dados. • Apenas os superusuários do banco de dados podem usar este comando. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 34 CREATE USER •Criar um novo usuário no sistema (sem privilégios): •sem host o MySQL acrescentará automaticamente o símbolo %: o usuário poderá se conectar de qualquer lugar • CREATE USER Jose; •com host é o nome do host a partir de onde o usuário pode se conectar ao banco de dados; • CREATE USER usuário@host IDENTIFIED BY 'senha'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 35 CREATE USER •Criar um novo usuário no sistema (sem privilégios): •Usar o endereço IP de um host (por exemplo, 127.0.0.1 para o host local): • CREATE USER usuarioIP@127.0.0.1 IDENTIFIED BY 'senha'; •Especificar um domínio a partir e onde o usuário pode se conectar. • CREATE USER usuario@'%.UNOPAR.com.br' IDENTIFIED BY 'senha'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 36 CREATE USER •Criando um usuário sem senha: •CREATE USER usuario; •CREATE USER usuarioHost@localhost; •Para alterar ou configurar uma senha para esse usuário posteriormente: • SET PASSWORD FOR usuario@'localhost' = PASSWORD('1234'); • SET PASSWORD FOR usuario@'%' = PASSWORD('1234'); 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 37 CREATE USER • Alterar Expiração de Senhas • ALTER USER usuario PASSWORD EXPIRE INTERVAL 90 DAYS; • ALTER USER 'usuario'@'localhost' PASSWORD EXPIRE NEVER; • ALTER USER 'usuario'@'localhost' PASSWORD EXPIRE DEFAULT; • setar uma configuração DEFAULT no “my.cnf”: • [mysqld] • default_password_lifetime=180 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 38 CREATE USER •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 39 Arquivo: gerenciamentoUsuarios.sql RENAME USER •Renomear um usuário do MySQL; •Se o usuário possuir privilégios configurados, eles são mantidos para o novo nome de usuário; • RENAME USER nome_atual TO novo_nome 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 40 RENAME USER •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 41 Arquivo: gerenciamentoUsuarios.sql DROP USER • remove uma conta de usuário do banco de dados •O comando DROP USER remove o usuário especificado. •Não remove as tabelas, visões ou outros objetos pertencentes ao usuário. •Se o usuário possuir algum banco de dados uma mensagem de erro é gerada. • DROP USER nome_usuário; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 42 DROP USER • Para remover uma conta de usuário: • DROP USER AmandaSemHost; • DROP USER AmandaComHost@host; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 43 DROP USER •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 44 Arquivo: gerenciamentoUsuarios.sql GRANT e REVOKE GRANT •Atribuir ou retirar privilégios de acesso aos bancos de dados para os usuários; •CREATE USER para criar usuários e o GRANT para atribuir privilégios de acesso aos usuários; •É possível fazer a criação e configurar os privilégios no mesmo momento com o GRANT. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 46 SHOW GRANTS •Visualizar os privilégios: • SHOW GRANTS FOR NomeUser@host; •Para visualizar os privilégios do usuário alexandre; • SHOW GRANTS FOR alexandre@localhost; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 47 SHOW GRANTS •O usuário possui o privilégio "USAGE" em todas as tabelas de todos os bancos de dados do sistema (*.*) 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 48 SHOW GRANTS •DEMOSTRAÇÃO 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 49 Arquivo: gerenciamentoUsuarios.sql Privilégios mais comuns Privilégios para trabalhar com dados: Privilégio Descrição INSERT Inserir dados em uma tabela UPDATE Atualizar dados em uma tabela DELETE Excluir dados de uma tabela EXECUTE Executar funções ou procedimentos armazenados SELECT Efetuar consultas em uma tabela25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 50 Privilégios mais comuns Privilégios para modificar a estrutura do banco de dados: Privilégio Descrição CREATE Criar tabela ou banco de dados ALTER Modificar uma tabela DROP Excluir uma tabela ou um banco de dados CREATE VIEWS Criar exibições TRIGGER Criar ou excluir um trigger em uma tabela INDEX Criar ou excluir um índice CREATE ROUTINE Criar uma função ou um procedimento armazenado ALTER ROUTINE Alterar ou excluir uma função ou procedimento armazenado 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 51 Privilégios mais comuns Privilégios Administrativos: Privilégio Descrição CREATE USER Criar contas de usuários SHOW DATABASES Ver os nomes dos bancos de dados no servidor SHUTDOWN Desligar o servidor RELOAD Recarregar as tabelas que armazenam os privilégios dos usuários dos bancos de dados. Assim elas são atualizadas se tiverem sido modificadas. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 52 Privilégios mais comuns Outros privilégios: ALL Todos os privilégios disponíveis em um determinado nível, exceto GRANT OPTION GRANT OPTION Permite dar privilégios a outros usuários USAGE Não altera privilégios; usado para tarefas administrativas na conta do usuário. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 53 Níveis dos privilégios • No MySQL os privilégios são atribuídos em quatro níveis diferentes: • Global - O usuário tem acesso a todas as tabelas de todos os bancos de dados • Database - Esse privilégio dá ao usuário acesso a todas as tabelas de um banco de dados específico • Table - O usuário tem aceso a todas as colunas de uma tabela específica em um banco de dados • Column - O usuário possui acesso apenas a colunas especificadas em uma determinada tabela. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 54 GRANT TABLES •As grant tables armazenam as informações sobre os privilégios dos usuários, em um banco de dados interno de nome mysql. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 55 GRANT TABLES •A tabela a seguir detalha essas tabelas de privilégios: 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 56 GRANT TABLES Tabela Descrição user Armazena nomes e senhas de todos os usuários do servidor. Também armazena os privilégios globais que são aplicados a todos os bancos de dados do servidor. db Armazena privilégios dos bancos de dados tables_priv Armazena privilégios das tabelas columns_priv Armazena privilégios de colunas procs_priv Armazena privilégios de acesso a funções e stored procedures (procedimentos armazenados). GRANT •Sintaxe: GRANT lista_privilégios ON [nome_banco.]tabela TO usuário1 [IDENTIFIED BY 'senha1'], usuário2 [IDENTIFIED BY 'senha2'] ... [WITH GRANT OPTION] 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 57 GRANT • Criar um usuário de nome Jéssica, sem privilégios: GRANT USAGE ON *.* TO Usuario@localhost IDENTIFIED BY '1234'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 58 GRANT • Criar um usuário com privilégios globais: GRANT ALL ON *.* TO Usuario@localhost IDENTIFIED BY '1234' WITH GRANT OPTION 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 59 GRANT • Configurar privilégios específicos para execução de comandos DML em todas as tabelas do banco db_biblioteca ao usuário ana: GRANT SELECT, INSERT, UPDATE, DELETE ON db_biblioteca.* TO Usuario@localhost IDENTIFIED BY '1234'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 60 GRANT • Todos os privilégios no banco db_biblioteca à usuária claudia: GRANT ALL ON db_biblioteca.* TO Usuario@localhost IDENTIFIED BY '1234'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 61 GRANT • Garantir privilégios de inserção e atualização de registros e efetuar consultas na a tabela tbl_autores do banco de dados db_biblioteca ao usuário claudia: GRANT SELECT, INSERT, UPDATE ON db_biblioteca.tbl_autores TO usuario@localhost IDENTIFIED BY '1234'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 62 GRANT • Garantir o privilégio de consultar nomes e sobrenomes e alterar somente nomes dos autores (coluna nome-autor) da tabela tbl_autores do banco db_biblioteca ao usuário Jonas: GRANT SELECT (nome_autor, sobrenome_autor), UPDATE (nome_autor) ON db_biblioteca.tbl_autores TO usuario@localhost IDENTIFIED BY '1234'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 63 REVOKE •Revogar (retirar) privilégios dos usuários usando a declaração REVOKE. REVOKE lista_privilégios ON objeto FROM usuário1, usuário2, ...; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 64 REVOKE •Revogar o privilégio de exclusão de dados no banco db_biblioteca à usuária carlos: REVOKE DELETE ON db_biblioteca.* FROM usuario@localhost; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 65 REVOKE •Revogar o privilégio de atualização da coluna nome_autor do banco db_biblioteca, na tabela de autores, do usuário carlos: REVOKE UPDATE (nome_autor) ON db_biblioteca.tbl_autores FROM usuario@localhost; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 66 REVOKE •Remover todos os privilégios em todos os bancos de dados dos usuários alexandre e ana: REVOKE ALL, GRANT OPTION FROM usuario1, usuario2@localhost; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 67 Exercícios Exercícios •Criar usuários para um determinado banco de dados: Resumo da Aula Resumo da Aula •SQL •Comandos SQL •DDL, DML, DCL e DQL •Privilégios de Usuários •Gerenciamento de Usuários •CREATE, RENAME e DROP USER •GRANT e REVOKE Próxima Aula Próxima Aula •Comandos SQL - DML 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 73 Criação de Grupos • CREATE GROUP: cria um grupo de usuário do banco de dados • O comando CREATE GROUP cria um grupo de usuários. É necessário ser um superusuário do banco de dados para executar este comando. Deve ser observado que tanto os usuários quanto os grupos são definidos no nível de agrupamento de bancos de dados e, portanto, são válidos em todos os bancos de dados do agrupamento. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 75 Criação de Grupos • CREATE GROUP: cria um grupo de usuário do banco de dados • CREATE GROUP nome [ [ WITH ] opção [ ... ] ] onde opção pode ser: | USER nome_do_usuário [, ...] nome: O nome do grupo. nome_do_usuário: A lista dos usuários a serem incluídos no grupo. Os usuários devem existir. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 76 Criação de Grupos - Exemplos • Criar um grupo vazio: • CREATE GROUP colaboradores; •Criar um grupo com membros: • CREATE GROUP vendas WITH USER jonas, marcela; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 77 Alteração de Grupos • ALTER GROUP: altera um grupo de usuários • O comando ALTER GROUP altera os atributos de um grupo de usuários. As duas primeiras variantes abaixo adicionam ou removem usuários de um grupo, respectivamente. A terceira forma muda o nome do grupo. • Somente os superusuários do banco de dados podem utilizar este comando. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 78 Alteração de Grupos • ALTER GROUP: altera um grupo de usuários • O comando ALTER GROUP altera os atributos de um grupo de usuários. As duas primeiras variantes abaixo adicionam ou removem usuários de um grupo, respectivamente. A terceira forma muda o nome do grupo. • Somente os superusuários do banco de dados podem utilizar estecomando. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 79 Alteração de Grupos • ALTER GROUP: altera um grupo de usuários • O comando ALTER GROUP altera os atributos de um grupo de usuários. As duas primeiras variantes abaixo adicionam ou removem usuários de um grupo, respectivamente. A terceira forma muda o nome do grupo. • ALTER GROUP nome_do_grupo ADD USER nome_do_usuário [, ... ] • ALTER GROUP nome_do_grupo DROP USER nome_do_usuário [, ... ] • ALTER GROUP nome_do_grupo RENAME TO novo_nome 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 80 Alteração de Grupos • nome_do_grupo: O nome do grupo a ser modificado. • nome_do_usuário: Os usuários a serem adicionados ou removidos do grupo. Os usuários devem existir; o comando ALTER GROUP não cria nem remove usuários. •novo_nome: O novo nome do grupo. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 81 Alteração de Grupos - Exemplos • Adicionar usuários a um grupo: • ALTER GROUP arquitetura ADD USER joana, alberto; • Remover um usuário de um grupo: • ALTER GROUP engenharia DROP USER margarida; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 82 Exclusão de Grupos • DROP GROUP: remove um grupo de usuários • O comando DROP GROUP remove um grupo de usuários especificado. • Os usuários que fazem parte do grupo não são removidos. • Somente os superusuários do banco de dados podem utilizar este comando. • DROP GROUP nome_do_grupo • nome_do_grupo: O nome do grupo a ser removido. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 83 Exclusão de Grupos - Exemplos • Para remover um grupo: • DROP GROUP arquitetura; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 84 Gerenciar um banco de dados •O objeto mais básico em um SGBD é o banco de dados, pois qualquer outro objeto que venha a ser criado posteriormente estará de alguma forma diretamente ligado a ele. •Para poder criar um banco de dados é necessário ser um superusuário ou possuir o privilégio especial CREATEDB. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 85 Gerenciar um banco de dados •Normalmente, o criador se torna o dono do novo banco de dados. Os superusuários podem criar bancos de dados cujos donos são outros usuários e podem, até mesmo, criar bancos de dados cujos donos são usuários sem nenhum privilégio especial. •Os usuários comuns com privilégio CREATEDB podem criar apenas bancos de dados cujos donos são eles mesmos. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 86 Criar um banco de dados • Por padrão, o novo banco de dados é criado clonando o banco de dados padrão do sistema template1. CREATE DATABASE: cria um novo banco de dados. • CREATE DATABASE nome [ [ WITH ] [ OWNER [=] dono_do_banco_de_dados ] [ TEMPLATE [=] modelo ] [ENCODING [=] codificação ] [ TABLESPACE [=] espaço_de_tabelas ] ] 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 87 Criar um banco de dados • nome: O nome do banco de dados a ser criado. •dono_do_banco_de_dados: O nome do usuário que será o proprietário do novo banco de dados. •modelo: Nome do modelo a partir do qual o novo banco de dados será criado. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 88 Criar um banco de dados •codificação: Método de codificação do conjunto de caracteres a ser utilizado no novo banco de dados. (por exemplo, 'UTF8') •espaço_de_tabelas: O nome do espaço de tabelas (tablespace) associado ao novo banco de dadosdados. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 89 Criar um banco de dados - Exemplos •Para criar um banco de dados: • CREATE DATABASE lusiadas; •Para criar o banco de dados “vendas” pertencendo ao usuário “usuvendas” com o tablespace padrão “espvendas”: • CREATE DATABASE vendas OWNER usuvendas TABLESPACE espvendas; •Para criar o banco de dados musica com suporte ao conjunto de caracteres ISO- 8859-1: • CREATE DATABASE musica ENCODING 'LATIN1'; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 90 Alterar um Banco de Dados • ALTER DATABASE: altera as propriedades de um banco de dados existente. •O comando ALTER DATABASE somente pode ser usado pelo dono do banco de dadas ou por um superusuário. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 91 Alterar um Banco de Dados •ALTER DATABASE SET { TO | = } { | DEFAULT } •ALTER DATABASE nome RESET parâmetroALTER DATABASE nome RENAME TO novo_nome •ALTER DATABASE nome OWNER O novo_dono 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 92 Alterar um Banco de Dados • nome : O nome do banco de dados cujos atributos estão sendo alterados. • parâmetro valor: Define o padrão de sessão deste banco de dados, para o parâmetro de configuração especificado, como o valor fornecido. • Se valor for DEFAULT ou, de forma equivalente, se RESET for utilizado, a definição específica para o banco de dados é removida, e a efinição adrão global do sistema passa a ser herdada nas novas sessões. • novo_nome: O novo nome do banco e dados. • novo_dono: O novo dono do banco de dados. 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 93 Alterar um Banco de Dados •renomeando um banco de dados • ALTER DATABASE clientes_ex RENAME TO clientes_novos; •Alterando o padrão de datas para suportar o formato dd/mm/aaaa. • ALTER DATABASE winestore SET DateStyle=sql, dmy; • para listar o padrão de data atual use SHOW DATESTYLE; 25-Aug-17 Banco de Dados II - Prof. Odair Moreira de Souza 94
Compartilhar