Você está na página 1de 9

FOLHA EXERCICIOS 1

a) Criar um usuário comum jonas com senha;


CREATE USER jonas PASSWORD '123';

b) Criar o banco de dados do usuário jonas.


CREATE DATABASE jonas;

c) Criar um usuário cecilia com senha e permissão para criar novos


bancos de dados;
CREATE USER cecilia PASSWORD '123' CREATEDB;

d) Criar um banco de dados do usuário cecilia.


CREATE DATABASE cecilia;

e) Criar um usuário samanta com senha provisória que expirará em 3


dias;
CREATE USER samanta PASSWORD '123' VALID UNTIL '2010-10-19';

f) Criar um usuário edson com senha e permissão para criar novos


usuários;
CREATE USER edson PASSWORD '123' CREATEUSER;

g)Renomear o usuário jonas para jonasJR;


ALTER USER jonas RENAME TO "jonasJR";

h) Retirar a permissão de criar novos bancos da usuária cecilia;


ALTER USER cecilia NOCREATEDB;

i) Retirar a permissão de criar novos usuários do usuário edson;


ALTER USER edson NOCREATEUSER;

j) Tornar a senha da usuária samanta permanente;


ALTER USER samanta VALID UNTIL 'infinity';

k) Trocar a senha do usuário jonasJR e deixá-la válida por 1 ano;


ALTER USER "jonasJR" PASSWORD '1234' VALID UNTIL '2011-10-16';

l) Transformar o usuário edson em superusuário;


ALTER USER edson SUPERUSER;

m) Criar um grupo de usuários vazio chamado engenharia;


CREATE GROUP engenharia;

n) Criar um grupo de usuários topografia com os usuários samanta,


jonasJR e edson
CREATE GROUP topografia WITH USER samanta,"jonasJR",edson;

o) Adicionar os usuários cecilia e edson no grupo engenharia;


ALTER GROUP engenharia ADD USER cecilia,edson;

p) Retirar o usuário jonasJR do grupo topografia;


ALTER GROUP topografia DROP USER "jonasJR";

q)Renomear o grupo topografia para trafego;


ALTER GROUP topografia RENAME TO trafego;

r) Excluir o grupo engenharia;


DROP GROUP engenharia;

s) Conectar-se ao banco cecilia com o superusuário edson;


\c cecilia edson;

t)Excluir o usuário cecilia;


DROP USER cecilia;
DROP DATABASE cecilia;

--------------------------------------------------------------------------------------------------------
------

FOLHA EXERCICIOS 2

a) Criar um usuário comum vendas com senha.


CREATE USER vendas PASSWORD '123';

b) Criar um banco de dados shopping com método de codificação UTF8.


CREATE DATABASE shopping ENCODING 'UTF-8';

c) Criar um banco de dados imobiliaria usando o template0 como


modelo.
CREATE DATABASE imobiliaria TEMPLATE template0;

d) Conectar-se ao banco de dados shopping com o usuário postgres.


\c shopping postgres;

e) Criar um esquema chamado lojas.


CREATE SCHEMA lojas;

f) Renomear o banco de dados imobiliaria para imoveis.


ALTER DATABASE imobiliaria RENAME TO imoveis;vendas

g) Trocar o dono do banco de dados shopping para o usuário vendas.


ALTER DATABASE shopping OWNER TO vendas;

h) Renomear o esquema lojas para empresas.


ALTER SCHEMA lojas RENAME TO empresas;
i) Excluir o banco de dados imoveis.
DROP DATABASE imoveis;

j) Criar um tablespace chamado arquivo_morto na pasta C:/arquivo.


CREATE TABLESPACE arquivo_morto LOCATION '/Users/Shared/morto';

k) Criar um banco de dados chamado imoveis no tablespace


arquivo_morto.
CREATE DATABASE imoveis TABLESPACE arquivo_morto;

l) Conectar-se ao banco de dados arquivo_morto.


\c arquivo_morto postgres;

m) Criar um esquema chamado locacao com autorização (dono) para o


usuário vendas.
CREATE SCHEMA locacao AUTHORIZATION vendas;

n) Excluir o esquema empresas do banco de dados shopping.


DROP SCHEMA empresas;

o) Renomear o tablespace arquivo_morto para arquivo.


ALTER TABLESPACE arquivo_morto RENAME TO arquivo;

p) Excluir o tablespace arquivo. (lembre-se que será necessário excluir


todos os seus objetos)
DROP DATABASE imoveis;
DROP TABLESPACE arquivo;

q) Excluir o banco de dados shopping.


DROP DATABASE shopping;

________________________________________________________________________

FOLHA EXERCICIOS 3

a) Criar os usuários comuns sergio, sofia e rodolfo com senhas válidas


por um ano.
CREATE USER sergio PASSWORD '0123' VALID UNTIL '2011-08-29';
CREATE USER sofia PASSWORD '0123' VALID UNTIL '2011-08-29';
CREATE USER rodolfo PASSWORD '0123' VALID UNTIL '2011-08-29';

b) Criar um usuário com permissão para criar novos usuários chamado


edgar com senha.
CREATE USER edgar PASSWORD '123' CREATEUSER;

c) Criar um grupo vazio chamado jornalistas.


CREATE GROUP jornalistas;
d) Criar um grupo chamado redatores com os usuários sofia e rodolfo.
CREATE GROUP redatores WITH USER sofia, rodolfo;

e)Criar um novo usuário comum chamado eduardo incluindo-o


diretamento no grupo jornalistas.
CREATE USER eduardo PASSWORD '123' IN GROUP jornalistas;

f) Criar um banco de dados chamado jornal com codificação UTF8


baseado no template0.
CREATE DATABASE jornal ENCODING 'utf8' TEMPLATE template0;

g) Criar os esquemas edicao, redacao e diagramacao dentro do banco


jornal.
CREATE SCHEMA edicao;
CREATE SCHEMA redacao;
CREATE SCHEMA diagramacao;

h) Criar a tabela pauta com os campos id - serial , data - date e


conteudo - text dentro do esquema redacao. (você deve definir o
campo id como CREATE primária e o campo data deve possuir a restrição
UNIQUE para impedir que sejam criadas mais de uma pauta por dia. Todos
os campos devem ser NOT NULL).

CREATE TABLE redacao.pauta (


id serial primary key,
data date unique not null,
conteudo text not null
);

i) Criar uma tabela layout com os campos id - serial , data - date,


diagramador - varchar(40), nr_jornal - integer dentro do esquema
diagramacao. (você deve definir o campo id como chave primária e o
campo data deve possuir a restrição UNIQUE para impedir que sejam
criadas mais de um layout por dia. Todos os campos devem ser NOT NULL
).

CREATE TABLE diagramacao.layout (


id serial primary key,
data date unique not null,
diagramador varchar (40) not null,
nr_jornal integer not null
);

j) Renomear a tabela pauta para materias.


ALTER TABLE redacao.pauta RENAME TO materiais;

k) Adicionar o campo redator - varchar(25) na tabela materias.


ALTER TABLE redacao.materiais ADD COLUMN redator varchar(25) not
null;

l) Excluir o campo diagramador da tabela layout.


ALTER TABLE diagramacao.layout DROP COLUMN diagramador;

m) Alterar o tipo de dado do campo data da tabela layout para


timestamp.
ALTER TABLE diagramacao.layout ALTER COLUMN data TYPE timestamp;

OBS: Exercicio deveria ser anterior ao da letra L


n) Alterar o campo diagramador da tabela layout retirando o parâmetro
NOT NULL.
ALTER TABLE diagramacao.layout ALTER COLUMN diagramador DROP not
null;

o) Alterar o campo redator da tabela materias inserindo o parâmetro


NOT NULL.
ALTER TABLE redacao.materiais ALTER COLUMN redator SET not null;

p) Criar uma tabela jornalista com os campos id - serial e nome -


varchar(40) dentro do esquema edicao. (você deve definir o campo id
como chave primária. Todos os campos devem ser NOT NULL ).
CREATE TABLE edicao.jornalista (
id serial primary key,
nome varchar (40) not null
);

q)Usando as propriedades de herança do PostgreSQL, criar no esquema


edicao uma tabela chamada editor_chefe que será descendente da
tabela jornalista. A tabela deverá conter os campos setor - varchar(40)
e nro_paginas - smallint, além de herdar todos os campos da sua tabela
ancestral. (Não esqueça de criar a chave primária da tabela descendente.)

CREATE TABLE edicao.editor_chefe(


setor varchar (40)not null,
nro_paginas smallint,
primary key (id)) INHERITS (edicao.jornalista);

r) Conceder os privilégios de consulta, inserção, exclusão e alteração na


tabela materias do esquema redacao para o grupo redatores.
GRANT ALL ON redacao.materiais TO GROUP redatores;

s) Conceder os privilégios de consulta, inserção, exclusão e alteração na


tabela materias do esquema redacao para o usuário edgar, extendendo
os privilégios a terceiros.
GRANT ALL ON redacao.materiais TO edgar WITH GRANT OPTION;

t) Conceder o privilégio de consulta no banco de dados jornal a todos os


usuários existentes, inclusive os que serão criados futuramente.
GRANT SELECT ON redacao.materiais TO PUBLIC;

u) Conceder o privilégio de consulta e alteração no esquema edicao ao


grupo jornalistas.
???

v) Conceder todos os privilégios no banco de dados jornal para o usuário


eduardo.
GRANT ALL PRIVILEGES ON DATABASE jornal TO eduardo;

w) Revogar o privilégio de exclusão na tabela materias do usuário


edgar.
REVOKE DELETE ON TABLE redacao.materiais FROM edgar;

x) Revogar o privilégio de exclusão na tabela materias do grupo


redatores.
REVOKE DELETE ON TABLE redacao.materiais FROM GROUP redatores;

y) Revogar o privilégio de alteração no esquema edicao do grupo


jornalistas.
nao existe como revogar
???

z) Revogar todos os privilégios no banco de dados jornal do usuário


eduardo.
REVOKE ALL PRIVILEGES ON DATABASE jornal FROM eduardo;

--------------------------------------------------------------------------------------------------------
------

FOLHA DE EXERCÍCIOS 4

a)Criar os usuários amanda, valeria, antonio e sergio com senhas


válidas por um ano e permissão para criar novos usuários.
CREATE USER amanda VALID UNTIl '2010-09-10' CREATEDB;
CREATE USER valeria VALID UNTIl '2010-09-10' CREATEDB;
CREATE USER antonio VALID UNTIl '2010-09-10' CREATEDB;
CREATE USER sergio VALID UNTIl '2010-09-10' CREATEDB;

b)Criar um grupo vazio chamado vendedores.


CREATE GROUP vendedores;

c) Adicionar os usuários amanda e sergio.


ALTER GROUP vendedores ADD USER amanda,sergio;
d) Criar um banco de dados chamado imobiliaria com codificação UTF8
baseado no template0.
CREATE DATABASE imobiliaria ENCODING 'UTF-8' TEMPLATE template0;

e) Criar um esquema chamado administrativo.


CREATE SCHEMA administrativo;

f) Criar a tabela clientes no esquema administrativo com a seguinte


estrutura:
OBS: (O campo id_cliente deverá ser do tipo serial)
f) Criar a tabela clientes no esquema administrativo com a seguinte
estrutura:
OBS: (O campo id_cliente deverá ser do tipo serial)

CREATE TABLE administrativo.clientes (id serial primary key


nome VARCHAR(50) NOT NULL,
sobrenome VARCHAR(50) NOT NULL,
inicial CHAR(1),
id_titulo SMALLINT NOT NULL,
endereco VARCHAR(50) NOT NULL,
cidade VARCHAR(50) NOT NULL,
estado VARCHAR(20) NOT NULL,
cep VARCHAR(10) NOT NULL,
id_pais SMALLINT NOT NULL,
telefone VARCHAR(15) NOT NULL,
data_nasc CHAR(10)
);

g) Criar a tabela pessoa e imovel no esquema PUBLIC com as seguintes


estruturas.
OBS: (Os campos chaves primária deverão ser declarados do tipo serial.)

CREATE TABLE imovel(cod_imovel serial primary key not null,


endereco varchar(500) not null,
num_quartos smallint not null,
num_pessoas smallint not null,
descricao varchar(500) not null,
cod_tipo_imovel integer not null,
cod_cidade integer not null,
cod_pessoa integer not null);

CREATE TABLE pessoa(


cod_pessoa serial primary key,
nome VARCHAR (255) NOT NULL,
sobrenome VARCHAR (255)NOT NULL,
email VARCHAR (255) NOT NULL,
fone VARCHAR (10) NOT NULL,
ativa BOOLEAN,
cep CHAR (8),
endereco VARCHAR (255) NOT NULL,
pj BOOLEAN,
cod_cidade INTEGER,
cod_plano INTEGER);

h) Conceder priviliégios de leitura e inserção na tabela clientes para a


usuária amanda.
GRANT SELECT,INSERT ON administrativo.clientes TO amanda;

i) Conceder todos os privilégios no esquema administrativo para o


usuário sergio.
GRANT ALL PRIVILEGES ON SCHEMA administrativo TO sergio;

j) Conceder priviliégios de leitura e exclusão na tabela clientes para o


usuário sergio.
GRANT SELECT,DELETE ON administrativo.clientes TO sergio;

k) Conceder todos os privilégios no banco de dados inteiro para a


usuária valeria.
GRANT ALL PRIVILEGES ON DATABASE imobiliaria TO valeria;

l) Conceder priviliégios de leitura e exclusão na tabela imovel para o


grupo vendedores.
GRANT SELECT,DELETE ON imovel TO GROUP vendedores;

m)Conceder os privilégios de consulta, inserção, exclusão e alteração na


tabela imovel para a
usuária amanda, extendendo os seus privilégios a terceiros.
GRANT SELECT,INSERT,DELETE,UPDATE ON imovel TO amanda WITH
GRANT OPTION;

n)Conceder o privilégio de consulta na tabela imovel a todos os usuários


existentes, inclusive os que serão criados futuramente.
GRANT SELECT ON imovel TO PUBLIC;

o) Conceder todos os privilégios no esquema administrativo ao grupo


vendedores.
GRANT ALL PRIVILEGES ON SCHEMA administrativo TO GROUP
vendedores;

p) Conceder todos os privilégios no banco de dados imobiliaria para o


usuário antonio.
GRANT ALL PRIVILEGES ON DATABASE imobiliaria TO antonio;

q) Revogar o privilégio de exclusão na tabela clientes do usuário sergio.


REVOKE DELETE ON administrativo.clientes FROM sergio;
r) Revogar o privilégio de exclusão na tabela imovel do grupo
vendedores.
REVOKE DELETE ON imovel FROM GROUP vendedores CASCADE;

s) Revogar todos os privilégios no esquema administrativo do grupo


vendedores.
REVOKE ALL PRIVILEGES ON SCHEMA administrativo FROM GROUP
vendedores;

t) Revogar todos os privilégios no banco de dados imobiliaria do usuário


antonio.
REVOKE ALL PRIVILEGES ON DATABASE imobiliaria FROM antonio;

--------------------------------------------------------------------------------------------------------
------