Você está na página 1de 22

BANCO DE DADOS WEB

AULA 4
linguagem SQL: subconjuntos DCL, DDL e DML
professor Luciano Roberto Rocha
www.lrocha.com

O que SQL?
Structured Query Language, ou Linguagem de Consulta
Estruturada ou SQL, uma linguagem de pesquisa
declarativa para banco de dados relacional.
Muitas das caractersticas originais do SQL foram inspiradas
na lgebra relacional
Foi desenvolvido originalmente no incio dos anos 70 nos
laboratrios da IBM.
Tinha por objetivo demonstrar a viabilidade da
implementao do modelo relacional proposto por Edgar
Codd.
Seu nome original era SEQUEL, acrnimo para "Structured
English Query Language"
2

SQL (principais caractersticas)


A linguagem SQL um grande padro de banco de dados.
Por ser uma linguagem declarativa (no procedural), uma
consulta SQL especifica a forma do resultado e no o caminho
para chegar a ele.
Apesar de ser originalmente criada pela IBM, muitos
desenvolvedores foram criando "dialetos" para ela. Essa
expanso levou necessidade de ser criado e adaptado um
padro para a linguagem.
Em 1986/87 a linguagem SQL foi padronizada pela ANSI e
ISO sendo revisada nos anos de 1992, 1999 e 2003.
Normalmente a linguagem pode ser aportada de
plataforma para plataforma sem mudanas significativas
em sua estrutura.

Estrutura da linguagem SQL


A linguagem SQL dividida em subconjuntos de acordo com
as operaes que se deseja efetuar sobre um banco de
dados. Os principais subconjuntos so:
DDL - Data Definition Language (Linguagem de Definio de Dados)
Principais comandos: CREATE, ALTER e DROP

DML - Data Manipulation Language (Linguagem de Manipulao 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.

DDL Linguagem de Definio de Dados


O conjunto de comandos da linguagem DDL usado para
a definio das estruturas de dados, fornecendo as
instrues que permitem a criao, modificao e
remoo de objetos de banco de dados (base de
dados, esquemas, tabelas, ndices etc.).
A maioria dos bancos de dados comerciais tem extenses
proprietrias no DDL.
Os comandos bsicos da DDL so:
CREATE: cria um objeto (uma Tabela, por exemplo) dentro da base de dados.
DROP: apaga um objeto do banco de dados.
ALTER: permite ao usurio alterar um objeto, por exemplo, adicionando uma
coluna a uma tabela existente.
5

DML Linguagem de Manipulao de Dados


o grupo de comandos dentro da linguagem SQL utilizado
para a recuperao, incluso, remoo e modificao de
informaes em bancos de dados.
Os comandos bsicos da DML so:
SELECT: permite ao usurio especificar uma consulta ("query") como uma
descrio do resultado desejado.
INSERT usada para inserir um registro (formalmente uma tupla) a uma tabela
existente.
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 transao atualmente executada.
ROLLBACK:desfaz a transao corrente, fazendo com que todas as modificaes
realizadas pela transao sejam rejeitadas.

DCL Linguagem de Controle de Dados


o grupo de comandos que permitem ao administrador de
banco de dados gerenciar os aspectos de autorizao de
dados e licenas de usurios para controlar quem tem
acesso para ver ou manipular dados dentro do banco de
dados.
Alguns exemplos de comandos DCL so:
GRANT: concede privilgios a um ou mais usurios para acessar ou realizar
determinadas operaes em um objetos de dados.
REVOKE: revoga (remove) ou restringe a capacidade de um usurio de executar
operaes.
SET: Define parmetros em tempo de execuo, como por exemplo, o tipo de
codificao do cliente e o estilo de representao de data e hora.
LOCK: Bloqueia explicitamente uma tabela fazendo o controle de acessos
concorrente.
7

BANCO DE DADOS WEB

AULA 4
criao de papis (Roles): usurios e grupos
professor Luciano Roberto Rocha
www.lrocha.com

Criao de Usurios
CREATE USER: cria uma conta de usurio do banco de dados
Descrio
Adiciona um novo usurio ao agrupamento de bancos de dados do
PostgreSQL.
Apenas os superusurios do banco de dados podem usar este comando.

Sinopse
CREATE USER nome [ [ WITH ] opo [ ... ] ]
onde opo pode ser:
|
|
|
|
|

CREATEDB | NOCREATEDB
CREATEUSER | NOCREATEUSER
IN GROUP nome_do_grupo [, ...]
[ ENCRYPTED | UNENCRYPTED ] PASSWORD 'senha'
VALID UNTIL 'data_e_hora'

Criao de Usurios
Parmetros
nome
O nome do usurio.
CREATEDB - NOCREATEDB
Estas clusulas definem a permisso para o usurio criar banco de dados. Se for
especificado CREATEDB, o usurio sendo definido ter permisso para criar seus
prprios bancos de dados. Se for especificado NOCREATEDB, nega-se ao usurio
a permisso para criar banco de dados. Se nenhuma destas clusulas for
especificada, o padro NOCREATEDB.
CREATEUSER - NOCREATEUSER
Estas clusulas determinam se o usurio pode ou no criar novos usurios.
CREATEUSER tambm torna o usurio um superusurio, o qual pode passar por
cima de todas as restries de acesso. Se nenhuma destas clusulas for
especificada, o padro NOCREATEUSER.
10

Criao de Usurios
Parmetros
nome_do_grupo
O nome de um grupo existente onde o usurio ser includo como um novo
membro. Podem ser especificados nomes de vrios grupos.
senha
Define a senha do usurio. Esta opo pode ser omitida, mas o usurio no
poder mais se conectar se for decidido mudar para autenticao por senha. A
senha poder ser definida ou mudada posteriormente atravs do comando ALTER
USER.
ENCRYPTED - UNENCRYPTED
Estas clusulas controlam se a senha ser armazenada criptografada, ou no, nos
catlogos do sistema; Se no for especificada nenhuma destas clusulas, o
comportamento padro ser determinado pelo parmetro de configurao
password_encryption.
data_e_hora
A clusula VALID UNTIL define uma data e hora aps a qual a senha do usurio
no mais vlida. Se esta clusula for omitida, a conta ser vlida para sempre.

11

Criao de Usurios
Exemplos
Criar um usurio sem senha:
CREATE USER jonas;
Criar um usurio com senha no grupo desenvolvedores:
CREATE USER manuel PASSWORD 'jw8s0F4' IN GROUP desenvolvedores;
Criar um usurio com uma senha vlida at o fim de 2009. Aps o primeiro
segundo de 2010 a senha no ser mais vlida.
CREATE USER miriam PASSWORD 'jw8s0F4' VALID UNTIL '2010-01-01';
Criar uma conta onde o usurio pode criar bancos de dados:
CREATE USER manuel PASSWORD 'jw8s0F4' CREATEDB;
Criar um superusurio:
CREATE USER Altair CREATEUSER CREATEDB PASSWORD 'jw8s0F4';
12

Alterao de Usurios
ALTER USER: altera uma conta de usurio do banco de dados
Descrio
Altera os atributos de uma conta de usurio do PostgreSQL. Os atributos no
mencionados no comando permanecem com suas definies anteriores.
Somente um superusurio do banco de dados pode alterar qualquer uma
destas configuraes para qualquer usurio. Os usurios comuns podem
apenas alterar suas prprias senhas.

Sinopse
ALTER USER nome [ [ WITH ] opo [ ... ] ]
ALTER USER nome RENAME TO novo_nome
ALTER USER nome SET parmetro { TO | = } { valor | DEFAULT }
ALTER USER nome RESET parmetro
13

Alterao de Usurios
Exemplos
Mudar a senha do usurio:
ALTER USER marcos PASSWORD 'hu8jmn3';
Mudar a data de expirao da senha do usurio:
ALTER USER manuel VALID UNTIL 'Jan 31 2030';
Mudar a data de expirao da senha, especificando que a senha expira ao meio
dia de 4 de maio de 2010:
ALTER USER cristiane VALID UNTIL 'May 4 2010 12:00:00';
Tornar o usurio vlido para sempre:
ALTER USER andrea VALID UNTIL 'infinity';
Dar ao usurio permisso para criar outros usurios e novos bancos de dados:
ALTER USER luizete CREATEUSER CREATEDB;
14

Excluso de Usurios
DROP USER: remove uma conta de usurio do banco de dados
Descrio
O comando DROP USER remove o usurio especificado. No remove as tabelas,
vises ou outros objetos pertencentes ao usurio. Se o usurio possuir algum
banco de dados uma mensagem de erro gerada.

Sinopse
DROP USER nome

Parmetro
nome
O nome do usurio a ser removido.
15

Excluso de Usurios
Observaes
O PostgreSQL inclui o aplicativo dropuser que possui a mesma funcionalidade deste
comando (na verdade, chama este comando), mas que pode ser executada a
partir da linha de comandos.
Para remover um usurio que possui um banco de dados, primeiro o banco de
dados deve ser removido ou mudado de dono.
No se aconselha remover um usurio que possua algum objeto de banco de
dados, ou que tenha permisses concedidas para objetos. Atualmente isto s
verificado no caso dos donos de bancos de dados, mas provvel que as verses
futuras do PostgreSQL verifiquem os outros casos.

Exemplos
Para remover uma conta de usurio:
DROP USER marcos;
16

Criao de Grupos
CREATE GROUP: cria um grupo de usurio do banco de dados
Descrio
O comando CREATE GROUP cria um grupo de usurios. necessrio ser um
superusurio do banco de dados para executar este comando.
Deve ser observado que tanto os usurios quanto os grupos so definidos no
nvel de agrupamento de bancos de dados e, portanto, so vlidos em todos
os bancos de dados do agrupamento.

Sinopse
CREATE GROUP nome [ [ WITH ] opo [ ... ] ]
onde opo pode ser:
| USER

nome_do_usurio [, ...]
17

Criao de Grupos
Parmetros
nome
O nome do grupo.
nome_do_usurio
A lista dos usurios a serem includos no grupo. Os usurios devem existir.

Exemplos
Criar um grupo vazio:
CREATE GROUP colaboradores;
Criar um grupo com membros:
CREATE GROUP vendas WITH USER jonas, marcela;
obs: No existe o comando CREATE GROUP no padro SQL. O conceito de papis (roles)
semelhante ao de grupos.

18

Alterao de Grupos
ALTER GROUP: altera um grupo de usurios
Descrio
O comando ALTER GROUP altera os atributos de um grupo de usurios.
As duas primeiras variantes abaixo adicionam ou removem usurios de um
grupo, respectivamente. A terceira forma muda o nome do grupo.
Somente os superusurios do banco de dados podem utilizar este comando.
Para conhecer o conjunto de grupos existentes, deve ser consultada a
t a b e l a d o s i s t e m a
p g _ g r o u p c o m o s e g u i n t e c o m a n d o :
SELECTgronameFROMpg_group;

Sinopse
ALTER GROUP nome_do_grupo ADD USER nome_do_usurio [, ... ]
ALTER GROUP nome_do_grupo DROP USER nome_do_usurio [, ... ]
ALTER GROUP nome_do_grupo RENAME TO novo_nome

19

Alterao de Grupos
Parmetros
nome_do_grupo
O nome do grupo a ser modificado.
nome_do_usurio
Os usurios a serem adicionados ou removidos do grupo. Os usurios devem
existir; o comando ALTER GROUP no cria nem remove usurios.
novo_nome
O novo nome do grupo.

Exemplos
Adicionar usurios a um grupo:
ALTER GROUP arquitetura ADD USER joana, alberto;
Remover um usurio de um grupo:
ALTER GROUP engenharia DROP USER margarida;
20

Excluso de Grupos
DROP GROUP: remove um grupo de usurios
Descrio
O comando DROP GROUP remove um grupo de usurios especificado.
Os usurios que fazem parte do grupo no so removidos.
Somente os superusurios do banco de dados podem utilizar este comando.

Sinopse
DROP GROUP nome

21

Excluso de Grupos
Parmetros
nome_do_grupo
O nome do grupo a ser removido.

Exemplos
Para remover um grupo:
DROP GROUP arquitetura;
Obs.: No se aconselha remover um grupo que tenha permisses concedidas
para objetos. Atualmente isto no exigido, mas provvel que as verses
futuras do PostgreSQL verifiquem este erro.

22

Você também pode gostar