• Nenhum resultado encontrado

CCM205 Aula14 SQL DDL

N/A
N/A
Protected

Academic year: 2021

Share "CCM205 Aula14 SQL DDL"

Copied!
13
0
0

Texto

(1)

SQL

Linguagem de Definição de Dados

Profa. Maria Camila Nardini Barioni

camila.barioni@ufabc.edu.br

Bloco B - sala 937

Pós-graduação em Ciência da Computação

CCM-202 Sistemas de Banco de Dados

2° quadrimestre de 2011

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 22

SQL

Structured Query Language

2

Desenvolvida e implementada pelo

laboratório de pesquisa da IBM em San

Jose – final da década de 60 e início da

década de 70

Inicialmente chamada de SEQUEL

(

Structured English QUEry Language

)

Criada como interface entre usuários e

o primeiro SGBDR – SYSTEM R

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 3

SQL

Structured Query Language

Uma das mais importantes linguagens

relacionais (se não a mais importante)

Exemplos de SGBD que utilizam SQL

• Oracle

• Informix

• Ingress

• SQL Server

• Interbase

• SyBase

• DB2

• MySQL

• PostgreSQL

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 4

SQL

Structured Query Language

Atrativo: pequena quantidade de

comandos para realizar todas as

operações necessárias para definição e

manipulação de relações

Simplicidade

Grande poder de consulta

Padrão facilita migração

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 5

SQL

Structured Query Language

O padrão SQL



American National Standard Institute

(ANSI) e

International Organization for

Standardization

(ISO)



Versão mais recente: SQL3 (SQL99)

Principalmente conceitos de orientação a objetos



Versões anteriores

SQL2 (SQL92)

SQL1 (SQL86)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 6

Composição do SQL

Linguagem de Definição dos Dados (DDL)

comandos para a definição, a modificação e a

remoção de relações, além da criação e da remoção de índices

Linguagem Interativa de Manipulação dos

Dados (DML)

comandos para a consulta, a inserção, a remoção e a modificação de tuplas no banco de dados

(2)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 7

Composição do SQL

Linguagem de Manipulação dos Dados

Embutida

pode ser utilizada a partir de linguagens de programação de propósito geral

Definição de visões

SQL DDL inclui comandos para a criação e a remoção de visões

Restrições de integridade

SQL DDL possui comandos para a especificação de restrições de integridade

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 8

Composição do SQL

Autorização

SQL DDL inclui comandos para a especificação de direitos de acesso a relações e visões

Gerenciamento de transações

introduz comandos para a especificação do início e do fim das transações

Recuperação de falhas

introduz comandos para utilização do arquivo de log

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 9

SQL DDL

CREATE DATABASE | SCHEMA



cria um esquema de BD relacional

DROP DATABASE | SCHEMA



remove um esquema de BD relacional

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 10

CREATE DATABASE

Cria um esquema de BD relacional



agrupa as tabelas e outros comandos que

pertencem à mesma aplicação



identifica o proprietário do esquema

Característica



o esquema inicial não possui tabelas/dados

CREATE {DATABASE | SCHEMA} nome

[USER `username` [PASSWORD `password`] ] ... ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 11

DROP DATABASE

Remove um esquema de BD relacional



tabelas/dados



índices



arquivos de log

Usuários autorizados



proprietário do banco de dados



DBA ou usuário com privilégio de

root

DROP DATABASE {DATABASE | SCHEMA} nome

[CASCADE | RESTRICT] ;

quaisquer elementos associados

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 12

CASCADE



remove um esquema de BD, incluindo

todas as suas tabelas e os seus outros

elementos

RESTRICT



remove um esquema de BD somente se

não existirem elementos definidos para

esse esquema

(3)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 13

SQL DDL

CREATE TABLE

cria uma nova tabela (relação) no BD a nova tabela não possui dados

DROP TABLE

remove uma tabela (relação) e todas as suas instâncias do BD

ALTER TABLE

altera a estrutura de uma tabela (relação) já existente no BD

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 14

CREATE TABLE

Cria uma nova tabela (relação)

Cria os atributos da nova tabela, com



nome do atributo: A

i

(1

i

n)



tipo de dado (domínio do atributo): D

i 

restrições que atuam no atributo: R

i

CREATE TABLE nome_tabela ( A1 D1 R1,

A2 D2 R2,

...

An Dn Rn) ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 15

Exemplos de Tipos de Dados

Numéricos

 smallint | integer | float | double precision  decimal | numeric

Hora/Data

 date | time | timestamp Booleano

 TRUE/FALSE ou UNKNOWN Cadeias de Caracteres

 char | character | varchar | ... Outros

 blob

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 16

Restrições de Integridade

Atributo

Valor nulo

representado por NULL membro de todos os domínios

Restrição NOT NULL

especificada quando NULL não é permitido proíbe que o atributo receba valor nulo

Comparações

usar IS NULL e IS NOT NULL

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 17

Restrições de Integridade

Atributo

Cláusula DEFAULT

associa um valor default para um atributo, caso nenhum outro valor seja especificado

Cláusula CHECK

especifica um predicado que precisa ser satisfeito por todas as tuplas de uma relação

exemplos

saldo int CHECK (saldo >= 0)

nível char(15) CHECK (nível IN

(`Bacharelado`,`Mestrado`, `Doutorado`))

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 18

Restrições de Integridade

Chave

Cláusula PRIMARY KEY

identifica os atributos da relação que formam a sua chave primária

os atributos são implicitamente NOT NULL

sintaxe

PRIMARY KEY (atributo1, atributo2, ..., atributoX)

Cláusula UNIQUE

não permite valores duplicados para um determinado atributo

(4)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 19

Restrições de Integridade

Chave

Integridade referencial

dependência existente entre a chave estrangeira de uma relação e a chave primária da relação relacionada

problemas

atualização ou exclusão de elementos da chave primária sem fazer um ajuste coordenado nas chaves estrangeiras

inclusão ou alteração de valores não nulos na chave estrangeira que não existam na chave primária

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 20

Restrições de Integridade

Chave

Cláusula FOREIGN KEY



características



elimina a possibilidade de violação da

integridade referencial



reflete nas chaves estrangeiras todas as

alterações na chave primária



sintaxe

FOREIGN KEY (atributos)

REFERENCES nome_relação (atributos)

[ON UPDATE [CASCADE | SET NULL | SET DEFAULT]] [ON DELETE [CASCADE | SET NULL | SET DEFAULT]]

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 21

DROP TABLE

Remove uma tabela existente do BD



dados

metadados



índices



gatilhos que referenciam a tabela

Usuários autorizados



proprietário do banco de dados



DBA ou usuário com privilégio de

root

DROP TABLE nome_tabela ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 22

Altera o esquema de uma tabela do BD



adiciona



remove



altera

ALTER TABLE

ALTER TABLE nome_tabela;

colunas ou restrições de integridade

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 23 ALTER TABLE nome_tabela

ADD (A1D1R1),

...

ADD (AnDnRn)

Exemplos: ALTER TABLE



inclui novas colunas na tabela

ALTER TABLE nome_tabela DROP A1

– elimina uma coluna já existente da tabela

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 24

Exemplos: ALTER TABLE



modifica o nome de uma coluna existente

de A

1

para A

2

– modifica o tipo de dado de uma coluna

ALTER TABLE nome_tabela ALTER [COLUMN] A1TO A2

ALTER TABLE nome_tabela ALTER [COLUMN] A1TYPE NOVOTIPO

(5)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 25

SQL DDL

CREATE DOMAIN



cria um domínio para um tipo de dados

DROP DOMAIN



remove um domínio existente do BD

ALTER DOMAIN



altera a definição de domínio

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 26

CREATE DOMAIN

Cria um domínio para um tipo de dados



restrições de integridade

Característica



a definição do domínio é global ao BD

CREATE DOMAIN nome_domínio [AS] tipo_dado

[DEFAULT ... ] [NOT NULL] [CHECK ...]

... ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 27

DROP DOMAIN

Remove um domínio existente do BD



falha caso o domínio esteja definindo o tipo

de dado de alguma coluna

Usuários autorizados



proprietário do banco de dados



DBA



usuário com privilégio de

root

DROP DOMAIN nome_domínio ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 28

ALTER DOMAIN

Altera um domínio existente do BD



remove ou define restrições de integridade

ALTER DOMAIN nome_domínio ... ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 29

Domínio no Oracle

Sintaxe para a criação de domínio:

Exemplo

CREATE TYPE meu_numero AS OBJECT ( numero integer);

CREATE TABLE tabelax (

atributo1 varchar(10) PRIMARY KEY, atributo2 meu_numero);

INSERT INTO tabelax VALUES ('teste', meu_numero(12345));

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 30

Facilita o processo de criação de identificadores

únicos de um registro em um banco de dados

É um contador automático que é acionado toda

vez que é acessado

O número gerado por ela pode ser usado para

atualizar o campo chave em uma tabela,

garantindo que não existam duas linhas com o

mesmo código

(6)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 31

Uma seqüência padrão tem as seguintes

características

Começa sempre a partir do número 1

Tem ordem ascendente

É aumentada em 1

CREATE SEQUENCE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 32

Sintaxe básica

CREATE SEQUENCE sequence_name

[START WITH integer_value]

[INCREMENTED BY integer_value]

CREATE SEQUENCE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 33

Para acessar o número seqüencial gerado

é necessário trabalhar com o conteúdo

de duas pseudocolunas



CURRVAL:

Retorna o valor atual da

seqüência



NEXTVAL:

Aumenta o valor da seqüência e

retorna o próximo valor



Exemplo:

NomeSequencia.NEXTVAL

CREATE SEQUENCE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 34

Observações importantes



Uma seqüência só está disponível para o

esquema que a criou



A primeira vez que uma seqüência é

acionada ela retorna o seu valor inicial

CREATE SEQUENCE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 35

Para visualizar no dicionário de dados

Selecione a tabela USER_SEQUENCES

Para excluir uma seqüência

DROP SEQUENCE sequence_name

Para alterar uma seqüência

ALTER SEQUENCE sequence_name parameter_name

NÃO é possível alterar

Valor inicial

Valor mínimo não pode ser maior que o atual

CREATE SEQUENCE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 36

SQL DDL

CREATE INDEX



cria um índice sobre uma ou mais colunas

de uma tabela

DROP INDEX



remove um índice existente do BD

ALTER INDEX

(7)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 37

CREATE INDEX

Cria um índice sobre uma ou mais colunas

de uma tabela

Considerações



desempenho das consultas

versus

custos de atualização e de armazenamento

CREATE [UNIQUE]

INDEX nome_índice

ON nome_tabela (nome_coluna [ASC | DESC] [, nome_coluna [ASC | DESC]]) ;

sintaxe SGBD Oracle

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 38

Índice

Estrutura de acesso auxiliar usada para

melhorar o desempenho na recuperação de

registros

Pesquisa

restringida a um subconjunto dos registros, em contrapartida à análise do conjunto completo

realizada em resposta a certas condições

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 39

Índice

Desvantagem

sobrecarga adicional

Observações

existe uma variedade de índices, cada qual com uma estrutura de dados particular

qualquer atributo em um arquivo pode ser usado para criar um índice

vários índices podem ser definidos para um mesmo arquivo

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 40

Índice – Exemplo baseado em árvore

Custo: log2N 5 4 2 7 15 1 3 6 16 14 A B 4 maria 3 joão 1 cecília 2 luiz 6 júlia 5 marina 7 enzo 16 rúbens 15 carlos 14 levi

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 41

Atributos Indexados

Chave



principalmente primária

Presentes em operações de seleção



valores requeridos em condições

igualdade

faixa de valores (i.e., range queries)

Participam em condições de junção

um atributo deve ser indexado?

algumas consultas podem ser processadas apenas varrendo-se o índice, sem recuperar qualquer dado

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 42

Índice sobre Vários Atributos

Condição

vários atributos de uma

relação estão envolvidos juntamente em diversas consultas

Restrição

ordem dos atributos dentro do índice deve corresponder às consultas

Exemplo

índice sobre (estilo_carro, cor)

quando deve ser criado?

(8)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 43

DROP INDEX

Remove um índice existente do BD

Usuários autorizados



proprietário do banco de dados



DBA ou usuário com privilégio de

root

DROP INDEX nome_índice ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 44

ALTER INDEX

Torna um índice existente



ativo



inativo

Característica



tornar um índice inativo e depois ativá-lo

novamente gera a reconstrução e o

balanceamento do índice

ALTER INDEX nome_índice { ENABLE | DISABLE } ;

sintaxe SGBD Oracle

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 45

Exemplo

região(região_id, nome_região, mapa_região, descrição_região)

vinícola(vinícola_id, nome_vinícola, descrição_vinícola, fone_vinícola, fax_vinícola, região_id)

vinho(vinho_id, nome_vinho, tipo_vinho, ano_vinho, descrição_vinho, vinícola_id)

vinho vinícola região

região_id nome_região descrição_região mapa_região vinho_id nome_vinho tipo_vinho ano_vinho descrição_vinho é_de situada n 1 n 1 vinícola_id nome_vinícola descrição_vinícola fone_vinícola fax_vinícola

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 46

Exemplo

CREATE DATABASE loja_vinhos;

região(região_id, nome_região, mapa_região, descrição_região)

smallint varchar(100) blob blob

DEFAULT ′0′NOT NULL,

NOT NULL, , ,

PRIMARY KEY (região_id)

CREATE TABLE região( região_id

nome_região mapa_região descrição_região );

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 47

Exemplo

CREATE TABLE vinícola( vinícola_id nome_vinícola descrição_vinícola fone_vinícola fax_vinícola região_id );

vinícola(vinícola_id, nome_vinícola, descrição_vinícola, fone_vinícola, fax_vinícola, região_id)

smallint NOT NULL ,

varchar(100) NOT NULL ,

blob ,

varchar(15) ,

varchar(15) ,

smallint DEFAULT ′0′ NOT NULL,

PRIMARY KEY (vinícola_id) ,

FOREIGN KEY (região_id) REFERENCES região(região_id)

ON UPDATE SET DEFAULT ON DELETE SET DEFAULT

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 48

Exemplo

CREATE TABLE vinho( vinho_id nome_vinho tipo_vinho ano_vinho descrição_vinho vinícola_id );

vinho(vinho_id, nome_vinho, tipo_vinho, ano_vinho, descrição_vinho, vinícola_id)

smallint NOT NULL ,

varchar(50) NOT NULL ,

varchar(10) DEFAULT ′seco′NOT NULL,

integer DEFAULT ′0′ NOT NULL,

blob ,

smallint DEFAULT ′0′ NOT NULL,

PRIMARY KEY (vinho_id) ,

FOREIGN KEY (vinícola_id) REFERENCES vinícola (vinícola_id)

ON UPDATE CASCADE ON DELETE CASCADE

(9)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 49

SQL DML

Inserção

Realizada através da especificação



de uma tupla particular



de uma consulta que resulta em um

conjunto de tuplas a serem inseridas

Valores dos atributos das tuplas

inseridas



devem pertencer ao domínio do atributo

Atributos sem valores



especificados por NULL ou valor DEFAULT

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 50

SQL DML

Inserção

Ordem dos atributos deve ser mantida

INSERT INTO nome_tabela

VALUES ( V

1

, V

2

, ..., V

N

) ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 51

SQL DML

Inserção

• Ordem dos atributos não precisa ser

mantida

INSERT INTO nome_tabela (A

1

, A

2

, ..., A

n

)

VALUES ( V

1

, V

2

, ..., V

N

) ;

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 52

SQL DML

Inserção - Exemplos

INSERT INTO região

VALUES (12, ‘nome região’, NULL,

‘descrição’);

INSERT INTO região (região_id,

nome_região)

VALUES (12, ‘nome região’);

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 53

Comandos para Controlar

Relações - DCL

CONNECT: Permite a conexão a uma base de dados através de um gerenciador

DISCONNECT: Desconecta de uma base de dados

COMMIT: Torna permanente todas as alterações feitas desde o início da conexão

ROLLBACK: Descarta todas as alterações feitas desde o início da conexão, ou do último comando COMMIT ou ROLLBACK

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 54

Segurança do Banco de Dados

Os SGBD incluem recursos de segurança que

controlam o modo como um banco de dados

é acessado e usado

Exemplo:

 Evitam o acesso ao BD sem autorização

 Controlam o uso de recursos do sistema (exemplo: tempo

de CPU)

(10)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 55

Segurança do Banco de Dados

No Oracle

Cada usuário do BD tem um esquema associado com o mesmo nome

Esquema (tabelas, visões, seqüência, índices, procedimentos, funções, etc.)



Todo usuário cria e tem acesso a todos os

objetos do esquema correspondente



A segurança pode ser classificada em duas

categorias

Segurança de sistema

Segurança de dados

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 56

Segurança do Banco de Dados

No Oracle



Segurança de sistema: inclui os

mecanismos que controlam o acesso e o

uso do BD em um determinado nível

Combinações válidas de usuário e senha

Quantidade de espaço em disco para os objetos de esquema

Limites de recurso

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 57

Segurança do Banco de Dados

No Oracle



Segurança de dados: inclui os

mecanismos que controlam o acesso e o

uso do BD no nível de objeto de esquema

Quais usuários têm acesso a um objeto específico e aos tipos de ações que cada um pode executar (exemplo: o usuário Silva pode emitir comandos SELECT e INSERT, mas não DELETE usando a tabela EMPREGADO)

As ações, se existirem, que são auditadas para cada objeto de esquema

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 58

Segurança do Banco de Dados

Mecanismos de Segurança suportados pelo

Oracle



Controle arbitrário

O privilégio apropriado deve ser atribuído por um usuário para que ele acesse um objeto de esquema

Usuários com um determinado grupo de privilégios podem concedê-los a outros segundo seu critério

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 59

Segurança do Banco de Dados

Mecanismos de Segurança suportados pelo

Oracle



Recursos

Usuários e esquemas de banco de dados

Privilégios

Papéis

Definições de cota de armazenamento

Limites de recurso

Auditoria

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 60

Mecanismos de Segurança

Usuários e Esquemas do BD

Cada BD tem uma lista de usuários, na qual cada usuário tem uma senha associada

Domínio de Segurança

São associados a cada usuário

Conjunto de propriedades que determinam

Ações (privilégios e papéis) disponíveis

Espaço disponível em disco

(11)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 61

Mecanismos de Segurança

Privilégios

Direito para executar um determinado tipo de declaração SQL

Exemplos:

Direito de Conectar-se ao BD

Direito de criar uma tabela

Direito de selecionar linhas da tabela de outro usuário

Direito de executar o procedimento de outro usuário

Podem ser divididos

Privilégios de sistema

Muitas vezes disponíveis apenas para o DBA

Privilégios do objeto de esquema

Atribuídos aos usuários finais

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 62

Mecanismos de Segurança

Privilégios



Podem ser divididos

1. Privilégios de sistema

Muitas vezes disponíveis apenas para o DBA Existem mais de 70 tipos

Exemplos:

Privilege: GRANT ANY PRIVILEGE Procedure: CREATE PROCEDURE

CREATE ANY PROCEDURE ALTER ANY PROCEDURE DROP ANY PROCEDURE EXECUTE ANY PROCEDURE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 63

Mecanismos de Segurança

Privilégios



Podem ser divididos

2. Privilégios do objeto de esquema

Atribuídos aos usuários finais Exemplos:

ALTER: tabelas e seqüências DELETE: tabelas e visões EXECUTE: procedimentos Etc.

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 64

Mecanismos de Segurança

Concedendo Privilégios



Duas formas

Explicitamente

Exemplo: o usuário Silva pode emitir comandos

SELECT e INSERT, mas não DELETE usando a tabela EMPREGADO

Podem ser concedidos aos papéis (um grupo

nomeado de privilégios) que então são concedidos a um ou mais usuários

Exemplo: o privilégio de emitir comandos SELECT e

INSERT, mas não DELETE usando a tabela EMPREGADO pode ser concedido ao papel chamado GerenteRH, o qual pode ser concedido ao usuário Silva

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 65

Mecanismos de Segurança

Papéis



São grupos de privilégios concedidos aos

usuários ou a outros papéis



Existem diversos papéis predefinidos

Exemplos: CONNECT, RESOURCE e DBA

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 66

Mecanismos de Segurança

Papéis



Vantagens:

Concessão reduzida de privilégios Por grupos de usuários

Gerenciamento dinâmico de privilégios Se for necessário alterar privilégios de um grupo de

usuários, altera-se apenas no papel

Disponibilidade seletiva de privilégios Permite o controle específico dos privilégios de um

(12)

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 67

Mecanismos de Segurança

Auditoria



Auxilia na investigação de um suposto uso

suspeito do BD



Pode ser executada em três níveis:

Auditoria de declaração: associada com

declarações SQL específicas

Auditoria de privilégio: associada ao uso dos

privilégios

Auditoria de objeto de esquema: associada

aos acessos a objetos de esquema específicos sem levar em conta o usuário

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 68

Permite a criação de novos usuários

Sintaxe simplificada

CREATE USER username

IDENTIFIED BY password

O comando

CREATE USER

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 69

GRANT:

Permite atribuir privilégios

REVOKE:

Permite revogar privilégios

Sintaxe simplificada para atribuir privilégios de

sistema (pelo DBA)

GRANT role/privilege_name TO username/role

[WITH ADMIM OPTION]

WITH ADMIM OPTION: permite que o

usuário/papel que recebe o privilégio possa atribuí-lo a outros usuários

Os comandos

GRANT

e

REVOKE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 70 Sintaxe simplificada para atribuir privilégios de objeto (qualquer usuário) GRANT ALL SELECT INSERT DELETE INDEX ALTER

UPDATE [(column name) ON table_name/view_name] TO username [WITH ADMIM OPTION]

 A sintaxe do REVOKE é a mesma do GRANT, basta substituir

GRANT por REVOKE nos comandos apresentados

Os comandos

GRANT

e

REVOKE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 71

Permite criar novos papéis

Sintaxe simplificada

CREATE ROLE role_name

IDENTIFIED BY password

O comando

CREATE ROLE

CCM-205 Sistema de Bancos de Dados - 2° quadrimestre de 2011 72

Para excluir um papel

DROP ROLE role_name

Para excluir um usuário

DROP USER username [CASCADE]

Para visualizar no dicionário de dados



Usuários e privilégios, selecione a tabela

ALL_USERS



Papéis, selecione a tabela

USER_ROLE_PRIVS

(13)

73 73 73 73

Bibliografia

Elmasri, Ramez; Navathe, Shamkant B. Sistemas de

banco de dados. 4 ed. São Paulo: Addison Wesley,

2005, 724 p. Bibliografia: p. [690]-714.

Material Didático produzido pelos professores Cristina Dutra de Aguiar Ciferri e Caetano Traina Júnior

Referências

Documentos relacionados

Os Pareceres do NDE indicam que alguns professores apresentam dificuldades em compreender o Plano de Ensino como um instrumento de planejamento e gestão das

 São TADs representados através de listas sequenciais.. (fixas) ou encadeadas (dinâmicas), em que a seguinte regra deve

função recursiva, mais recursos de memória são necessários para executar o programa, o que pode torná-lo lento ou. computacionalmente

 Caminho simples que contém todas as arestas do grafo (e,. consequentemente, todos os

pública ou que sua função não tenha ainda sido definida, vendendo esses bens de posse legal da Administração Pública para aquisição de renda ou de produtos, esses podem

O SINASC coleta aproximadamente 30 variáveis das Declarações de Nascidos vivos, que disponibilizadas pelo DATASUS, onde as principais informações para tabulação e

The aim of this paper was two-folds: (i) to make a revision and an update of the state of the art about the relationships between swimming biomechanics with

A Fundação Sousândrade de Apoio ao Desenvolvimento da Universidade Federal do Maranhão (FSADU), foi criada em 1982 pela necessidade de atender às demandas oriundas da