Buscar

ACFrOgDSiCojfZJN1dE2h8L2RYVhOGB6NJ8mAOTxd0sFMCk6x8lHNMqud3BmFvFND0A1thP09uG02VfhXRIQvVcj0aFdlUg W oY7hcCwM2OOvy9Cy7SGbPRF FfbhM=

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

Continue navegando