<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ca">
	<id>http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Pr%C3%A0ctica_ASI-C6-ASGBD%3A_Seguretat_a_Oracle_I</id>
	<title>Pràctica ASI-C6-ASGBD: Seguretat a Oracle I - Historial de revisió</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.joanillo.org/index.php?action=history&amp;feed=atom&amp;title=Pr%C3%A0ctica_ASI-C6-ASGBD%3A_Seguretat_a_Oracle_I"/>
	<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Pr%C3%A0ctica_ASI-C6-ASGBD:_Seguretat_a_Oracle_I&amp;action=history"/>
	<updated>2026-08-30T14:15:27Z</updated>
	<subtitle>Historial de revisió per a aquesta pàgina del wiki</subtitle>
	<generator>MediaWiki 1.34.2</generator>
	<entry>
		<id>http://wiki.joanillo.org/index.php?title=Pr%C3%A0ctica_ASI-C6-ASGBD:_Seguretat_a_Oracle_I&amp;diff=37771&amp;oldid=prev</id>
		<title>Joan: /* Teoria */</title>
		<link rel="alternate" type="text/html" href="http://wiki.joanillo.org/index.php?title=Pr%C3%A0ctica_ASI-C6-ASGBD:_Seguretat_a_Oracle_I&amp;diff=37771&amp;oldid=prev"/>
		<updated>2011-01-10T14:34:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Teoria&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Pàgina nova&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Objectius==&lt;br /&gt;
En aquesta pràctica executarem el script admin_seguretat1.sql, que ilustra els conceptes bàsics de seguretat a Oracle, creació d'usuaris, permisos i rols que vam estar veient a la teoria. Es treballa amb dos usuaris. Un que té permisos de DBA (per ex, MARIA), i un altre que té permisos limitats (per ex, PERE).&lt;br /&gt;
&lt;br /&gt;
==Teoria==&lt;br /&gt;
*[[UD3_ASI-C6-ASGBD._Seguretat_a_Oracle]]&lt;br /&gt;
*http://www.infor.uva.es/~jvegas/cursos/bd/oraseg/oraseg.html&lt;br /&gt;
&lt;br /&gt;
==Desenvolupament==&lt;br /&gt;
Creem l'usuari MARIA (usuari DBA):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SQL&amp;gt; CREATE USER &amp;quot;MARIA&amp;quot;&lt;br /&gt;
IDENTIFIED BY maria&lt;br /&gt;
DEFAULT TABLESPACE USERS&lt;br /&gt;
TEMPORARY TABLESPACE TEMP;&lt;br /&gt;
&lt;br /&gt;
SQL&amp;gt; GRANT CONNECT,DBA TO &amp;quot;MARIA&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Primer de tot fem un SPOOL per a registrar en un fitxer tot allò que va succeïnt en el script &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SPOOL c:\log.txt&lt;br /&gt;
SET echo on&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ens connectem amb l'usuari '''MARIA''', que ja existeix i és DBA (té els permisos suficients per crear usuaris,...), i creem la taula de proves jtemp amb tres files per a fer proves. És important crear els usuaris amb majúscules. En la versió 8 dóna problemes a posteriori si hem creat els usuaris amb majúcules. (Comprovar si això també s'aplica a versions posteriors).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prompt ens connectem amb l'usuari MARIA...&lt;br /&gt;
pause&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
i creem la taula JTEMP amb tres files per a fer proves&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
drop table jtemp;&lt;br /&gt;
create table jtemp(camp1 varchar2(10));&lt;br /&gt;
insert into jtemp values('fila1');&lt;br /&gt;
insert into jtemp values('fila2');&lt;br /&gt;
insert into jtemp values('fila3');&lt;br /&gt;
&lt;br /&gt;
select * from jtemp;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Abans de crear l'usuari PERE l'esborrem, i també esborrem tots els objectes del seu esquema (CASCADE). Creem l'usuari sense cap mena de permís. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
REM l'opcio CASCADE es per esborrar les taules de 'PERE' si es que n'hi ha&lt;br /&gt;
drop user &amp;quot;PERE&amp;quot; CASCADE;&lt;br /&gt;
&lt;br /&gt;
prompt creem l'usuari PERE.&lt;br /&gt;
&lt;br /&gt;
create user &amp;quot;PERE&amp;quot; identified by &amp;quot;PERE&amp;quot;&lt;br /&gt;
default tablespace users&lt;br /&gt;
temporary tablespace temp&lt;br /&gt;
quota 1M on users&lt;br /&gt;
profile default;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Comprovem que l'usuari s'ha creat mirant la vista all_users del diccionari. Tanmateix, no ens podem connectar, no tenim permisos. Per donar permisos ens hem de tornar a connectar com a MARIA i donar els permisos mínims. Ara sí que podrem connectar-nos i crear una taula en l'esquema de PERE. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
select * from all_users where username='PERE';&lt;br /&gt;
&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt ens tornem a connectar amb 'MARIA'&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt donem a l'usuari PERE el rol de CONNECT i RESOURCE, que entre d'altres inclou els privilegis de CREATE SESSION, CREATE TABLE i CREATE VIEW&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
grant &amp;quot;CONNECT&amp;quot;,&amp;quot;RESOURCE&amp;quot; to &amp;quot;PERE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
create table ptemp(camp1 varchar2(10));&lt;br /&gt;
insert into ptemp values('fila1');&lt;br /&gt;
select * from ptemp;&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Si PERE vol accedir a la taula jtemp de l'esquema MARIA, encara no té permisos per fer-ho. L'usuari MARIA li haurà de donar privilegis sobre aquest objecte per fer, per exemple, selects i inserts. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prompt volem accedir a la taula MARIA.jtemp&lt;br /&gt;
prompt evidentment, encara no tenim privilegis per fer-ho&lt;br /&gt;
prompt select * from MARIA.jtemp;&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
prompt encara que diu que la tabla no existeix, en realitat si que existeix pero no hi ha privilegis&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt S'ha de donar el privilegi de SELECT ON TEMP to PERE (ho ha de fer l'usuari MARIA, que es DBA i te permisos per poder-ho fer).&lt;br /&gt;
prompt per tant tornem a connectar-nos com a MARIA per donar aquests privilegis&lt;br /&gt;
prompt grant select, insert on MARIA.jtemp to PERE;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
grant select, insert on MARIA.jtemp to PERE;&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
comprovem que ara sí que tenim privilegis suficients per a select i insert, però no per a update. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
prompt tornem a connectar-nos com a PERE&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt i ara si que podem fer la select que voliem&lt;br /&gt;
prompt select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
&lt;br /&gt;
prompt i també tenim permisos per fer inserts&lt;br /&gt;
&lt;br /&gt;
insert into MARIA.jtemp values('fila4');&lt;br /&gt;
&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt pero no tenim permisos per a fer updates&lt;br /&gt;
update MARIA.jtemp set camp1='canvifila4' where camp1='fila4';&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Ara MARIA dóna permís per a update a PERE sobre l'objecte jtemp. Després dóno permisos totals (GRANT ALL) &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
grant update on MARIA.jtemp to PERE;&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
update MARIA.jtemp set camp1='canvifila4' where camp1='fila4';&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt finalment, concedeixo tots els permisos sobre aquesta taula:&lt;br /&gt;
promp grant all on MARIA.jtemp to PERE&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
grant all on MARIA.jtemp to PERE&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt i ara puc fer coses mes radicals com&lt;br /&gt;
prompt alter table MARIA.jtemp modify camp1 varchar2(12);&lt;br /&gt;
prompt alter table MARIA.jtemp add camp2 varchar2(10);&lt;br /&gt;
&lt;br /&gt;
alter table MARIA.jtemp modify camp1 varchar2(12);&lt;br /&gt;
alter table MARIA.jtemp add camp2 varchar2(10);&lt;br /&gt;
describe MARIA.jtemp&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===A realitzar===&lt;br /&gt;
Estudia bé el contingut del script. Executa'l. Realitza modificacions del script que afectin a privilegis de sistema i privilegis d'objecte. En comptes d'usar l'usuari MARIA per fer proves, utilitza el teu usuari ASI2AXX.&lt;br /&gt;
&lt;br /&gt;
Per tal de què els alumnes no entrin en conflicte entre sí, hauràs de treballar:&lt;br /&gt;
*en comptes de MARIA -&amp;gt; ASI2AXX&lt;br /&gt;
*en comptes de PERE -&amp;gt; PEREXX&lt;br /&gt;
&lt;br /&gt;
Fica els noms d'usuari en majúscules. Encara que sembli un aspecte sense importància, s'ha vist que és vital per al funcionament de la pràctica.&lt;br /&gt;
&lt;br /&gt;
==Entrega==&lt;br /&gt;
Entregaràs el script (i el log) resultant al Moodle.&lt;br /&gt;
&lt;br /&gt;
==Recursos==&lt;br /&gt;
script admin_seguretat1.sql:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
SPOOL c:\log.txt&lt;br /&gt;
&lt;br /&gt;
SET echo on&lt;br /&gt;
prompt ens connectem amb l'usuari MARIA...&lt;br /&gt;
pause&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt i creem la taula JTEMP amb tres files per a fer proves&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
drop table jtemp;&lt;br /&gt;
create table jtemp(camp1 varchar2(10));&lt;br /&gt;
insert into jtemp values('fila1');&lt;br /&gt;
insert into jtemp values('fila2');&lt;br /&gt;
insert into jtemp values('fila3');&lt;br /&gt;
&lt;br /&gt;
select * from jtemp;&lt;br /&gt;
&lt;br /&gt;
REM l'opcio CASCADE es per esborrar les taules de 'PERE' si es que n'hi han&lt;br /&gt;
drop user &amp;quot;PERE&amp;quot; CASCADE;&lt;br /&gt;
&lt;br /&gt;
prompt creem l'usuari PERE.&lt;br /&gt;
&lt;br /&gt;
create user &amp;quot;PERE&amp;quot; identified by &amp;quot;PERE&amp;quot;&lt;br /&gt;
default tablespace users&lt;br /&gt;
temporary tablespace temp&lt;br /&gt;
quota 1M on users&lt;br /&gt;
profile default;&lt;br /&gt;
&lt;br /&gt;
select * from all_users where username='PERE';&lt;br /&gt;
&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt ens tornem a connectar amb 'MARIA'&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt donem a l'usuari PERE el rol de CONNECT i RESOURCE, que entre d'altres inclou els privilegis de CREATE SESSION, CREATE TABLE i CREATE VIEW&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
grant &amp;quot;CONNECT&amp;quot;,&amp;quot;RESOURCE&amp;quot; to &amp;quot;PERE&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
create table ptemp(camp1 varchar2(10));&lt;br /&gt;
&lt;br /&gt;
insert into ptemp values('fila1');&lt;br /&gt;
&lt;br /&gt;
select * from ptemp;&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt volem accedir a la taula MARIA.jtemp&lt;br /&gt;
prompt evidentment, encara no tenim privilegis per fer-ho&lt;br /&gt;
prompt select * from MARIA.jtemp;&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
prompt encara que diu que la tabla no existeix, en realitat si que existeix pero no hi ha privilegis&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt S'ha de donar el privilegi de SELECT ON TEMP to PERE (ho ha de fer l'usuari MARIA, que es DBA i te permisos per poder-ho fer).&lt;br /&gt;
prompt per tant tornem a connectar-nos com a MARIA per donar aquests privilegis&lt;br /&gt;
prompt grant select, insert on MARIA.jtemp to PERE;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
grant select, insert on MARIA.jtemp to PERE;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt tornem a connectar-nos com a PERE&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
prompt i ara si que podem fer la select que voliem&lt;br /&gt;
prompt select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
&lt;br /&gt;
prompt i també tenim permisos per fer inserts&lt;br /&gt;
&lt;br /&gt;
insert into MARIA.jtemp values('fila4');&lt;br /&gt;
&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt pero no tenim permisos per a fer updates&lt;br /&gt;
update MARIA.jtemp set camp1='canvifila4' where camp1='fila4';&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
&lt;br /&gt;
grant update on MARIA.jtemp to PERE;&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
connect PERE/PERE@BBDD&lt;br /&gt;
&lt;br /&gt;
update MARIA.jtemp set camp1='canvifila4' where camp1='fila4';&lt;br /&gt;
select * from MARIA.jtemp;&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt finalment, concedeixo tots els permisos sobre aquesta taula:&lt;br /&gt;
promp grant all on MARIA.jtemp to PERE&lt;br /&gt;
&lt;br /&gt;
connect MARIA/BBDD@BBDD&lt;br /&gt;
grant all on MARIA.jtemp to PERE&lt;br /&gt;
&lt;br /&gt;
pause&lt;br /&gt;
&lt;br /&gt;
prompt i ara puc fer coses mes radicals com&lt;br /&gt;
prompt alter table MARIA.jtemp modify camp1 varchar2(12);&lt;br /&gt;
prompt alter table MARIA.jtemp add camp2 varchar2(10);&lt;br /&gt;
&lt;br /&gt;
alter table MARIA.jtemp modify camp1 varchar2(12);&lt;br /&gt;
alter table MARIA.jtemp add camp2 varchar2(10);&lt;br /&gt;
describe MARIA.jtemp&lt;br /&gt;
&lt;br /&gt;
spool off&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Durarda==&lt;br /&gt;
2 hores&lt;br /&gt;
&lt;br /&gt;
{{Autor}}, gener 2010&lt;br /&gt;
[[Categoria: IES Jaume Balmes]]&lt;br /&gt;
[[Categoria: Pràctiques ASI-C6-ASGBD]]&lt;/div&gt;</summary>
		<author><name>Joan</name></author>
		
	</entry>
</feed>