Upload
dorian-bryan
View
53
Download
5
Embed Size (px)
DESCRIPTION
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. - PowerPoint PPT Presentation
Citation preview
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.
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;
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.
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_*
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
Criando usuários…
• Exemplo:Create user monica
identified [by leonardo | externally]
default tablespace users
quota 1 M on tablespace
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
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
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
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
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
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!!!
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;
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!
Cuidado!
• Nem todos os privilégios de objeto podem ser concedidos a roles:
References, index, read e write.
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] );
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.
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)
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 @.
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);