laboratório de banco de dados sgbd oracle 10 g marilde santos

21
Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Upload: internet

Post on 18-Apr-2015

112 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Laboratório de Banco de Dados SGBD Oracle 10 G

Marilde Santos

Page 2: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Usuários e direitos…

• Segurança:– Um dos pontos fortes do Oracle– Tabelas e views somente podem ser

manipulados por outros caso o dono ou o DBA permitam.

– Usuários ao serem criados não possuem sequer direito de conexão ao banco. Os privilégios devem ser oferecidos para que possam conectar-se, criar e alterar tabelas, etc.

Page 3: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Conceitos iniciais…

• Usuário– Indivíduo que se conecta ao banco e utiliza

objetos dele. Pode criar objetos e permitir que outros usuários os manipulem.

• Schema– Conjunto de objetos (tabelas, índices, visões,

etc.) de um usuário.

Select * from cat;

Page 4: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Conceitos iniciais…• Privilégio: direito que um usuário recebe para

fazer algo.– de sistema: permitem desde realizar conexões até

eliminar qualquer tabela.

– de objeto: afetam apenas um objeto desde ler até eliminar.

• Papel (Role)– Conjunto de privilégios agrupados e com um nome.

Facilita bastante a gerência de privilégios.

Page 5: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Conceitos iniciais…

• Perfil (Profile)– Limites que restringem as ações de um usuário.– Quando os recursos disponíveis forem fatores

críticos, o DBA pode criar profiles e atribuí-los a usuários.

– Limites que podem ser impostos:• sessions_per_user, cpu_per_session, cpu_per_call,

connect_time, idle_time, logical_reads_per_session, logical_reads_per_call, private_sga, comosite_limit, failed_login_attempts, password_*

Page 6: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Criando usuários…

• O DBA, ou alguém autorizado por ele, é quem cria usuários

• Sintaxe:Create user nome identified [by senha | externally] default tablespace nome temporary tablespace nome quota [inteiro [k | M] | unlimited] on tablespace

Page 7: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Criando usuários…

• Exemplo:Create user monica

identified [by leonardo | externally]

default tablespace users

quota 1 M on tablespace

Page 8: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Criando usuários…

• Para comprovar a existência de um usuário:Select * from all_user;

• Para alterar a senha de acesso ao Oracle:Alter user monick identified by thiago;

• Pode-se suspender um usuário:Alter user monick account lock; (temporário)Drop user monick cascade; (definitivo)

• Para desbloquear: alter user monick account unlock

Page 9: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Conectando…Nosso ambiente:• Servidor Windows: mustang.comp.ufscar.br• Servidor Linux: falcon.comp.ufscar.br

– SGBD Oracle Enterprise Edition 8.1.6.1.0– Serviço: ora8_falcon.comp.ufscar.br– Putty

• SSH: falcon.comp.ufscar.br• Login e senha : Pessoal da mig.• Prompt do linux:

– Sqlplus– Login e senha: usuario oracle

Page 10: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Conectando…

Nosso ambiente (cont):

• Laboratório LIG– Putty

• SSH: falcon.comp.ufscar.br

• Login e senha : Pessoal da mig.

• Prompt do linux: – Sqlplus

– Login e senha: usuario oracle

Page 11: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Conectando…Nosso ambiente (cont):• Outros locais

– Putty• SSH: mig.comp.ufscar.br• Login e senha : Pessoal da mig.

– Putty– SSH: falcon.comp.ufscar.br– Login e senha : Pessoal da mig.

» Prompt do linux: » Sqlplus» Login e senha: usuario oracle

Page 12: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Concedendo privilégios…

• Sintaxe:

grant {privilégio [,privilégio, …]

{on objeto} – tabela, view, sequence ou procedure

to {usuário [,usuário,…]|role|public}

[with admin option] – podem repassar os privilégios

recebidos

Page 13: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Exemplos de privilégios

• Grant select, insert on cursos to monick;• Grant update (carga_horaria, preco) on

cursos to monick with grant option;– É melhor utilizar views!

• Grant all on cursos to public;– Permissão a todos de fazer tudo em

cursos!!– Deve ser evitado a qualquer custo!!!

Page 14: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Criando Roles…

• Toda role é pública, não pertence a ninguém.

Create role nome_role [identified by senha];

Exemplo:

1. Create role gerencia;

2. Grant create table, create view to gerencia;

3. Grant gerencia to monick;

Page 15: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Retirando privilégios…

• Retirando privilégios de uma role:Revoke create view from gerencia;

• Retirando uma role de um usuário:revoke gerencia from monick;

Tais comandos só podem ser emitidos por quem emitiu os grant, ou tiver privilégios de sistema adequados!

Page 16: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Cuidado!

• Nem todos os privilégios de objeto podem ser concedidos a roles:

References, index, read e write.

Page 17: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Criação de Tabelas

Create table [schema.]tabela

(coluna1 tipo_dado [default expressão] [constraint_coluna],

colunaN tipo_dado [default expressão] [constraint_coluna],

[constraint-tabela] );

Page 18: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Tipos de Dados (oracle 9i)• Char(n) : cadeia de tamanho fixo. default é 1 e o

máximo é 2000.• Varchar2(n): cadeia de tamanho variável com o

máximo de n (máximo 4000).• Number(p,e): numérico

– p é precisão (max 38) – e é escala (número de casas decimais)

• Date: data e hora, inclui século, ano, mes, dia, hora, minuto e segundo.

• Timestamp: data e horas com maior precisão.

Page 19: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

ProblemaControle Acadêmico

• Aluno(RA, cpf, nro_rg, est_rg, Prenome, Sobrenome, telefone, endereço, UF, data_matricula)

• Histórico(cod_turma, RA, nota_final)• Turma(cod_turma, sala, cod_instrutor, cód_curso)• Instrutor(código instrutor, cpf, nro_rg, est_rg,

Prenome, Sobrenome, fone, admissão)• Curso(cód_curso, nome, carga_horaria, preco)• PreRequisito(cod_curso, pré_requisito)

Page 20: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

Exercício

• Criar em editor externo arquivos para criação de cada uma das tabelas do sistema de controle acadêmico (scripts)– Todo comando SQL deve ser finalizado por

ponto e vírgula (;)– Salvar em arquivos .sql– Para ativar o arquivo gerado, utilize o comando

start ou @.

Page 21: Laboratório de Banco de Dados SGBD Oracle 10 G Marilde Santos

ExercícioAluno(RA, cpf, nro_rg, est_rg, Prenome, sobrenome, telefone,

endereço, UF, data_matricula)

create table aluno (RA number(3) constraint instr_pk primary key, cpf varchar2(11) constraint instr_cpf_nul not null, nro_rg varchar2(10) constraint inst_Nrg_nul not null, est_rg varchar2(2) constraint inst_Estrg_nul not null, prenome varchar2(15) constraint inst_pnome_nul not null, sobrenome varchar2(15) constraint inst_snome_nul not nul, fone varchar2(10), endereco varchar2(40), UF varchar2(2),

data_matricula date default sysdate);