210 likes | 305 Views
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.
E N D
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: • Create role gerencia; • Grant create table, create view to gerencia; • 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ício Aluno(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);