Seguretat de la informació

En l’actualitat es viu en una societat que és denominada per alguns com la societat de la informació. La informació és accessible per qualsevol persona des de qualsevol punt del món. Aquesta informació pot ser informació genèrica (un accident a Xangai o una revolta a Egipte poden ser coneguts, per exemple, a Toronto pocs segons després de succeir) o dades personals (la base de dades d’una multinacional de la qual qualsevol veí de Barcelona pot ser client o l’usuari de la qual es pot trobar físicament a França o a l’Índia i aquesta informació podrà ser manipulada o gestionada per persones a milers de quilòmetres dels vertaders protagonistes de la informació).

Una informació determinada o qualsevol dada referent a qualsevol detall de la vida quotidiana d’una persona pot tenir un valor molt important per a una tercera persona o per a una empresa concreta. Quines poden ser aquestes dades o aquestes informacions que poden ser importants per a altres? N’hi haurà moltes i de molts tipus. Detalls que poden semblar insignificants com els colors preferits d’una persona es poden fer servir per fer una oferta determinada d’un producte i un color concrets per cridar-ne l’atenció. Altres informacions molt més sensibles com les dades personals o les dades econòmiques d’una persona poden ser utilitzades per molts altres objectius també comercials o d’altra índole.

En la societat actual hi ha informació sensible que es pot trobar molt fàcilment, per casualitat o de manera intencionada, com, per exemple:

  • Una adreça de correu postal oblidada en una carta que es llença a les escombraries.
  • Un nom i cognoms escrits en una prova teòrica qualsevol a un institut o universitat.
  • Una llista de noms i cognoms d’alumnes amb les seves notes penjades davant d’una aula.
  • Un extracte bancari o una notificació de nova targeta de crèdit o dèbit.
  • Una nòmina i un DNI lliurats a un centre comercial per obtenir una targeta de fidelització.
  • El tipus i color de cotxe que pertany a una persona determinada.

Qualsevol d’aquestes informacions pot ser important per a algú. Fins ara totes aquestes informacions eren una mica més complicades d’aconseguir. O bé s’aconseguien a partir d’empreses que disposaven d’aquestes dades o bé a partir d’altres mètodes menys correctes.

L’aparició dels sistemes informatitzats i, posteriorment, de la xarxa de xarxes i totes les eines, aplicacions i oportunitats que aquestes ofereixen, han multiplicat de manera exponencial les possibilitats d’aconseguir informacions i dades de moltes persones.

I què es podrà aconseguir amb la possessió d’aquestes informacions? Dependrà de les intencions de cadascú, però saber l’adreça d’una persona i si té fills o el seu poder adquisitiu pot ser informació molt rellevant per a empreses o persones interessades, per moltes possibles raons, en aquest individu.

Cal donar l’oportunitat a cada persona de poder utilitzar el seu dret a protegir la seva informació, de poder tenir al seu abast les eines necessàries per limitar les informacions que vulguin fer públiques. I cal garantir, també, que aquelles dades seves que gestionaran terceres persones o organitzacions seran tractades amb el màxim de respecte, sense vendre-les, i sense errors ni tecnològics ni humans en el tractament.

En el primer cas, per exemple, si un usuari fa servir un servei a Internet per mitjà d’una pàgina web o d’una xarxa social determinada, haurà de poder escollir quina o quines informacions vol donar a l’organització encarregada de la gestió d’aquesta informació. A més, haurà de poder escollir quina o quines d’aquestes informacions voldrà compartir amb la gent que coneix i quina o quines informacions amb la que gent que no coneix.

En el segon cas, si un gran magatzem es dedica a recollir les dades personals i econòmiques dels seus clients que volen tenir un lligam de fidelitat, aquest gran magatzem haurà de garantir que aquestes informacions seran tractades amb el màxim de respecte, que no es comercialitzaran (tret que la persona que es fidelitza així ho vulgui) i que es faran servir tots els mitjans per evitar errors tecnològics o humans (com, per exemple, una cosa tan senzilla com que un treballador llenci a les escombraries una llista en paper, en CD o en un llapis USB amb les dades dels clients, sense ser abans destruïdes de la manera adequada).

La informació s’ha convertit en un dels béns més apreciats i cobdiciats per tot tipus de persones i empreses. Per aquesta raó, cal que se’n garanteixi la seguretat. Aquesta seguretat comença per entendre i fer entendre el caràcter personal de les dades i el dret a la intimitat que les persones han de tenir d’aquestes dades. El pas següent és garantir la disponibilitat, la integritat i la confidencialitat de les dades.

Però també és molt important conèixer la normativa legal vigent sobre això, les agències, les eines, les lleis existents que regulen que les empreses que gestionen les dades compleixin aquesta seguretat i que ajuden a aconseguir-ho.

A l’hora de tractar la seguretat en les dades cal tenir present que l’objectiu final és minimitzar el risc protegint els sistemes i la informació crítica de les companyies de la pèrdua o d’usos indeguts.

Les organitzacions han descobert els problemes de seguretat de la informació no fa gaire temps. A mesura que els sistemes informàtics han evolucionat, han evolucionat també els possibles problemes. No fa gaire temps els sistemes informàtics de les organitzacions eren sistemes centralitzats i eminentment tancats. Així, doncs, el principal problema de seguretat al qual s’enfrontaven aquestes companyies era la pèrdua accidental de les dades per avaries en els sistemes, problema que se solucionava amb sistemes de còpia de seguretat (backup) o sistemes redundants.

Tanmateix, la realitat de les companyies ha canviat radicalment, i han aparegut nous reptes de seguretat als quals cal enfrontar-se. D’una banda, els clients volen accedir a la informació de la companyia, moltes vegades la seva pròpia informació, i ho fan sovint mitjançant Internet. Aquest fet obre una porta d’accés per on la seguretat pot minvar.

De l’altra, treballadors desplaçats que fan la seva tasca a les dependències del client, agents comercials… tots ells necessiten accedir a la informació crítica de la companyia i ho fan per mitjà les xarxes públiques com Internet. També apareix el concepte de comerç electrònic que consisteix en la compra i venda de productes o de serveis per mitjans electrònics.

D’aquesta manera, podem observar que, en l’actualitat, les organitzacions són cada vegada més dependents de les seves xarxes informàtiques i un problema que els afecti, per mínim que sigui, pot arribar a comprometre la continuïtat de les operacions.

La manca de mesures de seguretat en l’accés a les dades i en les xarxes és un problema que està en creixement. Cada vegada és més gran el nombre d’atacants i cada vegada estan més organitzats, per la qual cosa van adquirint dia a dia habilitats més especialitzades que els permeten obtenir més beneficis. Tampoc no s’han de subestimar els problemes de seguretat provinents de l’interior mateix de la organització.

Confidencialitat, integritat i disponibilitat de les dades

Hi ha tres principis que ha de complir un sistema informàtic per garantir la seva seguretat i la de les dades que hi formaran part. Són:

  • confidencialitat,
  • integritat,
  • disponibilitat.

The big three CIA: condidentiality, integrity and availability principles of information security.

Els tres principis es coneixen com a the big three CIA (figura), com a principis de la seguretat de la informació. Quan aquests tres principis es compleixen podem dir que una informació o un conjunt d’informacions es troben segurs. Els tres principis són atemporals i no depenen ni del sistema gestor de bases de dades ni de la tecnologia sobre la qual es trobin. S’haurà d’assegurar el seu acompliment sempre.

Figura The big three

Tal com els seus noms indiquen, els tres principis garanteixen, en el cas del seu acompliment, una seguretat de les dades des de diversos punts de vista: les dades són confidencials, és a dir, només hi poden accedir les persones amb els permisos adients (els gestors o l’administrador i les persones a qui afectin o a aquelles que hagin habilitat), les dades han de ser íntegres, és a dir, han de complir les regles definides per ser coherents en tot moment, i les dades s’han de trobar disponibles en tot moment per a les persones interessades.

Principi d'integritat

La integritat de les dades exigeix la garantia que les dades no han estat alterades (figura). A més, la integritat ofereix la seguretat que les dades, una vegada gestionades amb altes, baixes, modificacions o consultes, continuaran oferint un estat d’integritat, de consistència en què les seves relacions i els seus vincles continuaran sent vàlids i certs.

Figura Principi d’integritat

A grans trets, podem diferenciar tres tipus d’integritat:

  • integritat d’entitats,
  • integritat referencial,
  • integritat semàntica.

Integritat d'entitats

La integritat d’entitats no permet els valors NULS a les claus primàries de les relacions.

La restricció d’integritat d’entitats estableix que cap valor de clau primària no pot ser nul i ha de ser un valor únic. Per exemple, si en una relació amb les dades dels alumnes d’una universitat hi ha dos alumnes amb el mateix codi, no es podrà saber quan es fa referència a l’un o a l’altre. Encara un cas pitjor seria si un camp clau té un valor nul, ja que aquest registre no podria ser referenciat mai.

Integritat referencial

La integritat referencial s’encarrega de validar la concordança entre els valors d’una clau forana i els valors de la clau primària a la qual es fa referència.

La integritat referencial es compleix quan un valor en la clau forana d’una relació fa referència a un valor vàlid de la clau primària d’una altra relació (figura).

Figura Integritat referencial

Es pot suposar el cas d’una base de dades que ofereix diferents relacions i una d’elles, per exemple la relació OrdreCompra, disposa d’un camp, FKProducte, que és una clau forana que referencia un altre camp, PKProducte, de la relació Productes.

Els valors del camp FKProducte han d’existir en la taula Productes. És necessari per poder accedir a una informació més precisa de les seves característiques a l’hora de voler analitzar les ordres de compra o obtenir-ne més informació. Per aconseguir el compliment de la integritat referencial caldrà fer una sèrie de comprovacions quan es recullen les dades de les relacions. Per exemple, no acceptar cap ordre de compra d’un producte si no es valida que estigui prèviament en la relació Productes. O bé, no donar l’opció de teclejar el codi del producte i oferir una llista de possibilitats perquè sigui segur que l’usuari no es pot equivocar.

Però hi ha altres possibles errors que es poden produir i que provoquin que no es compleixi la propietat de la integritat referencial. Quan es poden produir errors d’integritat referencial?

  • Quan es modifica el valor de la clau principal d’un registre que té “fills”. Per exemple, es modifica l’identificador d’un producte en la relació de productes. La solució és l’actualització en cascada; aquesta opció indica a l’SGBD (gestor de base de dades) que quan es canvia un valor del camp clau de la taula principal, automàticament canviarà el valor de la clau forana dels registres relacionats en la taula secundària. És a dir, modificaria tots els valors del camp FKProducte (OrdreCompra) automàticament en modificar la clau d’un producte en la relació Productes.
  • ­Quan s’esborra una fila de la taula principal i aquesta té “fills”. La solució és l’esborrament en cascada; esborrant tots els registres associats de la taula secundària (OrdreCompra). Aquest esborrament es podria fer només del camp que és clau forana (deixant els valors afectats com a NUL, però aquesta solució no compliria la integritat referencial en tenir una relació (OrdreCompra) amb alguns registres amb informació parcial (sense indicar el producte comprat).

Integritat semàntica

La integritat semàntica valida les regles de negoci del model relacional. Una restricció d’integritat semàntica permet definir regles de negoci. Aquestes regles indiquen algunes condicions que les dades d’una base de dades han de complir. En l’exemple anterior, una regla de negoci pot ser que un usuari no pot donar d’alta més ordres de compra d’un producte determinat de les unitats que hi hagi en el seu estoc.

Un altre exemple d’integritat semàntica pot ser: “un alumne no pot estar matriculat a més de 80 crèdits”.

Per solucionar o evitar els problemes d’integritat semàntica es poden utilitzar disparadors o triggers.

L’objectiu de la integritat és protegir la base de dades contra operacions que introdueixin inconsistències en les dades; d’aquesta manera el subsistema d’integritat d’un SGBD ha de detectar i corregir, en la mesura que sigui possible, les operacions incorrectes.

ACID: atomicitat, consistència, aïllament, durabilitat.

Un altre tipus de problema que pot afectar la integritat de les dades és la interrupció de sentències múltiples de manipulació de dades abans de finalitzar totes les previstes d’un conjunt. Per exemple: una transferència entre dos comptes bancaris no es pot quedar en un estat intermedi: o es deixen els diners en el primer compte bancari o en el segon, però no es poden treure els diners del primer compte, que falli alguna cosa (xarxa, l’SBBD, el suport físic en què es troben les dades…) en aquell moment i no entregar-los en el segon compte.

Els SGBD han de garantir que l’execució d’un conjunt de sentències sobre la base de dades ha de complir les propietats ACID.

Principi de disponibilitat

El principi de disponibilitat indica que les dades han de ser accessibles i els serveis han d’estar operatius fins i tot en el cas de problemes de subministrament elèctric, atacs als servidors, accidents o altres situacions fortuïtes o provocades (figura).

Figura Disponibilitat

Hi ha algunes possibles solucions als problemes de no-disponibilitat de les dades o dels serveis. La majoria de les solucions són físiques. Per mantenir l’accessibilitat a les dades o resistir-s’hi hi ha accions o solucions com:

  • Sistemes de balanceig de la càrrega per evitar col·lapses a la xarxa o als serveis que ofereix.
  • SAI (sistemes d’alimentació ininterrompuda) per evitar avaries o irregularitats en el subministrament elèctric, sobretensions o pèrdues de tensió, llamps, etc.
  • Plans de recuperació o plans de contingència: és un esquema que especifica els passos que cal seguir en cas que s’interrompi l’activitat del sistema, amb l’objectiu de recuperar la funcionalitat. Com, per exemple: còpies de seguretat, replicació de bases de dades, clústers de servidors, etc.

Principi de confidencialitat

La confidencialitat garanteix que l’accés a les dades i a les comunicacions queda protegit contra la intercepció i/o lectura de persones no autoritzades (figura). Es tracta d’un principi molt important en el cas de dades de caràcter personal i crític en el cas de dades bancàries.

Per complir el principi de confidencialitat cal identificar els usuaris que fan servir les dades i l’accés a elles, aplicant així el control d’accés (controlant qui accedeix i a on), però també altres tècniques com l’encriptació d’informació en les comunicacions (encriptació de les dades en l’enviament via xarxes). Tot i així, també és possible que aquests mètodes siguin interpretats i sobrepassats per les persones que intentin accedir a la informació, ja sigui per obtenir informació o per efectuar canvis mal intencionats en una porció de la base de dades. Aquest problema és comú a tots els sistemes informàtics.

El mecanisme de seguretat d’un SGBD ha d’incloure maneres de restringir l’accés al sistema com un tot. Aquesta funció s’anomena control d’accés i es posa en pràctica creant comptes d’usuaris i contrasenyes (identificació de l’usuari) perquè l’SGBD controli el procés d’entrada al sistema.

Figura Confidencialitat

En el cas del control d’accés, es pot diferenciar entre:

  • Control d’accés global: creació d’usuaris que s’han d’autentificar (pot ser amb usuari/clau o per veu o per empremta dactilar…). Es podran supervisar totes les operacions fetes per cada usuari en cada sessió de treball, si algú duu a terme una operació il·legal o no autoritzada sobre la base de dades, l’administrador podrà determinar qui ho ha fet. Els usuaris quan hi accedeixen ho fan a tota la informació. Amb aquest sistema s’evita que el personal no autoritzat accedeixi a la base de dades.
  • Control d’accés discrecional: els usuaris podran accedir a les dades mitjançant una identificació que els limitarà l’accés a unes dades determinades i tindran privilegis per dur a terme unes operacions concretes. El control d’accés es pot fer a nivell de compte o a nivell d’objecte de la base de dades (en un SGBD serà a nivell de taula). Aquest és el sistema de control d’accés que ofereix la majoria dels sistemes gestors de bases de dades. Les instruccions que es faran servir per a la gestió dels privilegis són GRAN i REVOKE.
  • Control d’accés obligat: es tracta d’un tipus de seguretat més avançat que els vistos fins ara. Es fa servir per a un tipus d’aplicacions com les governamentals, militars, d’espionatge… Es fa servir un tipus de seguretat anomenat multinivell que atorga a cada usuari i objecte un nivell de seguretat.

Caràcter personal i el dret a la intimitat de les dades

Hi ha molts tipus de dades, però la gran majoria de dades són de caràcter personal o bé tenen una dependència força directa d’una persona o una organització. Fins i tot les dades que indiquen la quantitat d’unitats d’un producte determinat a un magatzem o els llibres que hi ha a una biblioteca tenen aquest tipus de dependència.

El fet que les dades tinguin un caràcter personal dóna un aire de pertinença de les dades. Si una empresa té una base de dades amb les dades personals dels seus clients o dels seus treballadors, a qui pertanyen aquestes dades? Als treballadors? A l’empresa? Si un banc disposa d’una base de dades amb totes les informacions referents a un client, aquesta informació és responsabilitat del banc (en el cas d’accessos indeguts o d’utilització d’aquesta informació per altres organitzacions), però l’usuari té dret a manipular-la.

Darrerament és força comú observar que hi ha organitzacions que demanen les dades personals als usuaris en els seus portals web corporatius. Hi ha regals o promeses o sortejos en el cas de registrar-se, si el mateix interessat emplena totes les informacions sol·licitades per l’organització.

Exemple de recollida de dades personals per part d'organitzacions

Com a exemple es podria agafar un fabricant d’un producte que normalment es ven via un detallista (per exemple, iogurts o galetes). No hi ha un contacte directe entre el fabricant i el comprador. És complicat conèixer els gustos i els hàbits de compra dels autèntics responsables de les compres, ja que els distribuïdors poden indicar el nombre de productes venuts en un espai de temps determinat, però no les característiques dels consumidors finals. Un dels objectius és poder tenir les dades per dur a terme campanyes de màrqueting més específiques o bé per fabricar un nou tipus de producte concret en funció d’aquestes informacions. Com es poden aconseguir les informacions que els fabricants volen?

Fins no fa gaires anys tècniques com els sortejos de regals o de sous per a tota una vida provocaven que els consumidors finals enviessin les seves dades als fabricant per participar en aquestes promocions (moltes vegades hi ha una empresa intermèdia que també disposarà d’aquestes dades encarregada de la seva gestió).

En l’actualitat, es poden dur a terme campanyes de fidelització mitjançant les quals els mateixos compradors introdueixen les seves dades en un portal web. La recollida de les dades és molt més senzilla i ràpida, de manera que es poden aprofitar per fer una petita enquesta de gustos i per informar els usuaris de les implicacions que té, pel que fa al tractament de les seves dades, el seu registre.

Les dades són de caràcter personal, però tindran dos responsables. D’una banda, totes les dades pertanyen a les persones a les quals fan referència. En el cas d’una base de dades amb dades dels clients, la pertinença d’aquesta informació és dels clients (sempre que ells hagin donat permís perquè l’organització tingui aquesta informació). Aquesta pertinença donarà el dret a la persona a consultar, modificar o esborrar la seva informació d’aquella base de dades.

Però les dades es trobaran físicament sota la responsabilitat de l’empresa. Aquesta serà la responsable de no perdre-les, que ningú sense permisos hi pugui accedir, de no vendre-la…

D’una altra banda, un altre concepte molt relacionat amb l’anterior és el dret que té tota persona a la intimitat de les seves dades (tant des del punt de vista de pertinença a l’empresa com des del punt de vista de pertinença al treballador o al client). Precisament aquest dret a la intimitat obliga a no poder vendre la informació a una tercera empresa, sempre que l’usuari no doni permís que es puguin donar aquestes circumstàncies.

RDLOPD: Reial decret llei orgànica de protecció de dades.

La ubicació de les dades de caràcter personal seran fitxers, que, segons l’RDLOPD, es poden classificar segons el grau d’automatització del fitxer:

  • Fitxer: qualsevol conjunt organitzat de dades de caràcter personal que permeti l’accés a les dades d’acord amb uns criteris determinats, sigui quina sigui la forma o modalitat de la seva creació, l’emmagatzematge, l’organització i l’accés.
  • Fitxer no automatitzat: qualsevol conjunt de dades de caràcter personal organitzat de manera no automatitzada i estructurat conforme a criteris específics relatius a persones físiques, que permetin accedir sense esforços desproporcionats a les seves dades personals, tant si és centralitzat, descentralitzat o repartit de manera funcional o geogràfica.

Però també es podran classificar en funció de la forma adoptada per l’organització o entitat responsable de les dades, en funció de si els fitxers són de titularitat pública o si són de titularitat privada. Els que són de titularitat pública tenen un tractament privilegiat, i tenen una repercussió especial pel que fa al règim sancionador.

Un altre tipus de classificació és en funció del tipus de dades personals que continguin: aquestes poden ser de tipus bàsic, de nivell mitjà o de nivell alt.

Les dades de tipus bàsic són tots els registres que continguin informacions de caràcter personal.

Les dades de nivell mitjà són les que fan referència a la comissió d’infraccions administratives o penals, a la solvència patrimonial o de crèdit, les relacionades amb la seguretat social o les que facin referència a les característiques o la personalitat de les persones.

Les dades de nivell alt són les dades de caràcter personal que fan referència a la ideologia, l’afiliació sindical, l’origen racial, la salut, les dades derivades d’actes de violència de gènere o recollides amb finalitats policials.

Normativa legal vigent

Els avenços continus en el camp de les tecnologies de la informació i la consolidació de l’anomenada societat de la informació han determinat una necessitat de dotar les dades de caràcter personal d’una protecció especial contra l’intent d’accessos no permesos i dels usos fraudulents. Per això no és suficient la regulació bàsica del dret a la intimitat, ja que no sols s’ha de defensar l’ús que un tercer pugui fer de les dades, sinó que en la societat actual es produeixen diversos fets que determinen la necessitat de fer un pas endavant en la defensa de l’accés a aquesta intimitat.

Cada dia hi ha més avenços en les tecnologies, avenços que primer serveixen per descobrir forats en la seguretat dels sistemes i després per resoldre aquests forats. Un individu o organització que aconsegueixi accedir a dades de caràcter personal d’altres per mitjà de formes no legalitzades, podrà, a més, emmagatzemar les dades, tractar-les i poder-ne recuperar la totalitat en segons, de manera que obtindrà en alguns casos perfils de la personalitat i ideològics. Aquests fets són una agressió a l’àmbit privat de les persones.

La resposta que s’ha donat a aquest problema en el marc del dret ha evolucionat des de la protecció de dades en el marc del dret a la intimitat, a la configuració del dret a la protecció de dades com un dret autònom i independent, mitjançant una regulació que gira entorn de l’autodeterminació de l’individu per decidir sobre els tractaments que es facin amb les seves dades, i que en la legislació interna s’ha configurat amb la denominació de principi del consentiment.

Abans de parlar de la Llei orgànica de protecció de dades, cal fer una revisió a la situació normativa que hi havia abans de la seva aparició l’any 1999.

Quins tipus de lleis hi ha?

Hi ha diferents tipus de lleis, decrets i directives a escala estatal i a escala europea o internacional. Les lleis fonamentals són les que marquen els principis de la legislació d’un país. La constitució és una llei fonamental. La constitució és la llei que es troba per sobre de qualsevol altra llei. Les lleis orgàniques es creen per regular un àmbit o una matèria específics. Les lleis ordinàries es troben en el darrer graó dins la jerarquia jurídica.

Com es regulaven les infraccions en matèria abans de la Llei de protecció de dades?

Fins a l’any 1999 no va aparèixer aquesta llei orgànica. Abans calia anar a altres lleis o directives europees per regular la gestió de les dades de caràcter personal. La Constitució de 1978 és la norma que prevalia.

Article 18.4 de la Constitució de 1978

“La Llei limita l’ús de la informàtica per tal de garantir l’honor i la intimitat personal i familiar dels ciutadans i el ple exercici dels seus drets”.

L’any 1982 es regula la protecció dels drets fonamentals de les persones, relacionats amb el tema de què es tracta:

  • el dret a l’honor,
  • el dret a la intimitat
  • el dret a la pròpia imatge.

Aquesta regulació es duu a terme mitjançant la Llei orgànica 1/1982, de 5 de maig, de protecció civil del dret a l’honor, a la intimitat personal i familiar i a la pròpia imatge, en què la protecció dels drets es trobaran emparats.

LORTAD: Llei orgànica 5/92 de regulació del tractament automatitzat de dades de caràcter personal, de 29 d’octubre.

Fins a l’aparició de la llei següent, l’any 1992, la LORTAD, aquest article de la Constitució era la base per als delictes en aquest àmbit. La LORTAD va estar en vigor fins al gener de l’any 2000. Aquesta llei orgànica és la primera llei que regula de manera específica l’àmbit de les dades personals i de la seva seguretat en suports informàtics. Entre molts altres aspectes en aquesta llei es fa una diferenciació entre els diferents tipus de dades de caràcter personal, els drets de les persones al seu tractament, la diferenciació de la titularitat dels fitxers o es parla de l’agència de protecció de dades per primera vegada.

L’any 1995 apareix la Directiva europea 95/46 CE del Parlament Europeu que regula la protecció de les persones físiques pel que fa al tractament de dades personals. La circulació lliure de les dades dins dels països i entre ells. Es tracta d’una directiva important per a la privacitat de les dades dins de la Unió Europea i per al drets humans.

Abans d’arribar a la LOPD, cal referenciar també una altra llei molt relacionada. El juny de l’any 2007 es va aprovar al Parlament la Llei d’accés electrònic dels ciutadans als serveis públics (LAECSP).

Aquesta llei obliga les administracions públiques a disposar de la totalitat dels seus serveis accessibles per mitjans electrònics, com a molt tard, a partir del primer de gener de 2010 (sempre que ho permetin les seves disponibilitats pressupostàries).

En els darrers anys s’han anat desenvolupant l’ús de les noves tecnologies per aconseguir els objectius establerts per les organitzacions quant a la publicitat, el màrqueting i l’accés als consumidors. Per això cal també l’evolució de les normes amb lleis noves. La Llei 29/2009 modifica el règim legal de la competència deslleial i de la publicitat per a la millora de la protecció dels consumidors i usuaris.

Aquesta llei, concretament, regula les pràctiques comercials deslleials de les organitzacions en les seves relacions amb els consumidors en el mercat interior. Es vol protegir el dret a la tranquil·litat davant l’assetjament publicitari per telèfon i correu electrònic.

Quins són els mecanismes que acostumen a fer servir les organitzacions per fer arribar les seves promocions o la seva publicitat de manera activa?

  • Visites domiciliaries, més habitual antigament, però encara es fa servir aquesta tècnica a data d’avui. No hi ha avís previ. Es considera deslleial per agressiva.
  • Telefònicament, sobretot per part d’organitzacions de serveis on la persona té ja algun contracte (telèfon, llum, gas…). Es considera deslleial pel fet de dur a terme propostes no desitjades i reiterades per telèfon, fax, correu electrònic o qualsevol altre mitjà de comunicació a distància, tret que s’estigui complint una obligació contractual entre l’organització i el client. Les trucades privades o amb número privat o anònim queden prohibides segons aquesta llei. Es pot denunciar a l’Institut Nacional de Consum i als òrgans o entitats corresponents de les comunitats autònomes i de les corporacions locals.
  • Correu electrònic, fent, de vegades, un ús massiu d’aquest mitjà i arribant a col·lapsar les safates d’entrada dels usuaris. Es considera també dins d’aquesta tècnica l’enviament de fax o la realització de trucades mecanitzades sense la intervenció humana, tret que hi hagi una relació contractual entre l’organització i la persona que rep el missatge. Es pot denunciar el fet de ser víctimes de correu brossa (spam) a l’Agència Espanyola de Protecció de Dades.

Llei de protecció de dades de caràcter personal

La Llei de protecció de dades de caràcter personal conté un total de 49 articles. Aquests articles es divideixen en set títols i finalitzen amb una sèrie de disposicions. A continuació, en podem trobar l’estructura:

  • Títol I. Disposicions generals.
  • Títol II. Principis de la protecció de dades.
  • Títol III. Drets de les persones.
  • Títol IV. Disposicions sectorials.
    • Capítol I. Fitxers de titularitat pública.
    • Capítol II. Fitxers de titularitat privada.
  • Títol V. Moviments internacionals de dades.
  • Títol VI. Agència Espanyola de Protecció de Dades.
  • Títol VII. Infraccions i sancions.

En primer lloc, caldrà definir el concepte de dada de caràcter personal.

Una dada de caràcter personal pot ser qualsevol informació numèrica, alfabètica, fotogràfica, acústica o gràfica concernent a qualsevol persona física viva que la pugui identificar directament o indirectament. Un tipus especial de dada serà la relativa a la salut, que seran informacions que concerneixin la salut passada, present i futura, física o mental, d’una persona.

Altres conceptes que cal definir són el de tractament de les dades, el de tipologia de dades i el de fitxers. Tots aquests conceptes queden definits en la LOPDP.

ACPD: Agència Catalana de Protecció de Dades.

Un fitxer és qualsevol conjunt organitzat de dades de caràcter personal. Un fitxer jurídic és el que és conformat per tots els fitxers físics o funcionals de la corporació i servirà per a la notificació a l’ACPD.

El tractament de dades són totes les operacions i els procediments tècnics que facin possible la gestió de les dades i que permetin cessions de dades a altres mitjançant comunicacions, consultes o transferències.

Es defineixen tres nivells de seguretats en la Llei de protecció de dades:

  • Nivell bàsic. Aquest nivell inclou totes les dades de caràcter personal.
  • Nivell mitjà. A més de les dades previstes en el nivell mitjà, s’hi han d’afegir les relatives a la Hisenda pública, les infraccions, els serveis financers i econòmics o les dades que permetin avaluar la personalitat de la persona.
  • Nivell alt. A més de les dades previstes en el nivell bàsic i en el nivell mitjà, s’hi han d’afegir les dades obtingudes per a finalitats policials sense coneixement de la persona afectada i les relatives a la ideologia, religió, sindicals, salut, raça, violència de gènere… Aquestes dades es consideraran “dades especialment protegides”, ja que no es pot obligar ningú a declarar sobre aquestes informacions (ideologia, religió o creences), art. 7 de la LOPD.

Una vegada definits aquests conceptes, cal tenir clar què es considera una incidència.

Una incidència és qualsevol anomalia que afecti o pugui afectar la seguretat de les dades. Entre aquestes anomalies hi ha algunes com el robatori de contrasenyes o maquinari, la còpia no autoritzada de dades, l’aturada no prevista del servei, la pèrdua de dades a un suport físic…

A partir d’aquestes definicions la Llei orgànica de protecció de dades de caràcter personal estableix una sèrie de drets de les persones i principis.

La qualitat de les dades estableix que les dades que es trobin en un fitxer hauran de ser veraces i es mantindran al dia, i la seva finalitat ha de ser determinada i explícita. A més, caldrà que siguin cancel·lades quan hagin deixat de ser necessàries.

El responsable del fitxer ha de complir el deure de secret professional, a més de tenir el deure de guardar-les, fins i tot si el responsable deixa de treballar per a l’organització dipositària de les dades.

Alguns dels drets de les persones envers les seves dades, coneguts com a ARCO, són:

  • dret d’accés,
  • dret de rectificació,
  • dret de cancel·lació,
  • dret d’oposició.

A aquests drets s’ha d’afegir el dret a l’oblit. Aquest dret atorga la possibilitat a una persona, de les dades personals de la qual disposi una organització, a esborrar-les de la base de dades, per preservar-ne d’aquesta manera la privacitat. D’aquesta manera, s’evitarà l’accés a les dades per part de tercers i s’evitarà que l’empresa que tingui les dades pugui oferir de manera lliure, inequívoca, específica i informada el tractament de les seves dades personals per part d’altres. Aquest consentiment haurà de ser previ a la cessió de les seves dades personals, ha de ser informat de la destinació i finalitat de les dades; aquest consentiment és reversible, pot ser tàcit o exprés o per escrit, però sempre hi ha excepcions per a aquest consentiment.

També està regulat l’accés a dades per comptes de terceres persones o organitzacions. No es considera cessió si un altre accedeix a les dades quan sigui necessari per poder prestar un servei al responsable del tractament de les dades. El tercer que accedeix a les dades es considera encarregat del tractament. Perquè terceres persones puguin accedir a les dades caldrà establir un contracte previ.

A la creació de qualsevol fitxer hi ha d’haver vinculada una persona que representi la figura del responsable del fitxer o del tractament de les dades.

Algunes de les tasques d’aquesta figura de responsable (que podrà ser una persona física o jurídica de naturalesa pública o privada) seran:

  • Decidir sobre la finalitat, el contingut i l’ús del tractament.
  • Elaborar un document sobre la seguretat de les dades.
  • Aplicar els principis de protecció de dades.
  • Formular clàusules generals de confidencialitat.
  • Tenir el deure d’informació.
  • Elaborar clàusules de consentiment i de recollida de dades personals.

Agència de Protecció de Dades

L’Agència de Protecció de Dades es va crear a partir de la Llei orgànica de l’any 1992, la LORTAD. L’Agència es crea l’any 1993 com una entitat que serà l’encarregada de vetllar pel compliment de les lleis orgàniques, primer la LORTAD i després la LOPD a tot l’Estat espanyol.

La seu de l’Agència de Protecció de Dades és a Madrid. S’encarrega d’actuar a tot Espanya, però hi ha diferents agències de protecció de dades de caràcter autonòmic, com les de la Comunitat de Madrid, Catalunya o el País Basc. Aquestes agències autonòmiques tenen un àmbit d’actuació limitat als fitxers de titularitat pública declarats i gestionats per les seves administracions autonòmiques i locals.

L’Agència de Protecció de Dades és una entitat de dret públic amb personalitat jurídica pròpia i plena capacitat pública i privada que actua de manera independent. Entre les seves funcions principals hi ha la de vetllar pel compliment de la legislació de protecció de dades pels responsables dels fitxers, que podran ser administracions o entitats públiques, organitzacions privades, associacions…

La funció general de l’Agència de Protecció de Dades és la de vetllar pel compliment de la legislació sobre protecció de dades i controlar la seva aplicació, especialment pel que fa als drets d’informació, accés, rectificació, oposició i cancel·lació de dades.

A partir de la funció general de l’Agència de Protecció de Dades s’han desenvolupat moltes altres funcions més específiques, vinculades amb les persones que tracten les dades, amb les persones afectades per la manca de seguretat, amb l’elaboració de les normes, amb les telecomunicacions o amb altres aspectes. Algunes d’aquestes funcions més específiques són:

  1. Amb relació a qui tracta dades
    • Oferir ajuda i informació a les organitzacions que la necessitin.
    • Exercir la potestat sancionadora.
    • Emetre autoritzacions previstes en la llei.
    • Requerir mesures de correcció.
    • Ordenar, en cas d’il·legalitat, el cessament en el tractament i la cancel·lació de les dades.
    • Autoritzar les transferències internacionals de dades.
  2. Amb relació a les persones afectades
    • Promoure campanyes de difusió de la norma pels mitjans.
    • Atendre les peticions i reclamacions de les persones afectades.
    • Informar i donar ajuda sobre els drets reconeguts en la Llei.
  3. En l’elaboració de normes
    • Informar dels projectes de normes de desenvolupament de la LOPD.
    • Dictar recomanacions en matèria de seguretat i control d’accés als fitxers.
    • Informar dels projectes de normes que incideixin en matèries de protecció de dades.
    • Dictar instruccions i recomanacions d’adequació dels tractaments a la LOPD.
  4. En matèria de telecomunicacions
    • Tutelar els drets i garanties dels abonats i usuaris en l’àmbit de les comunicacions electròniques.
    • Donar solucions a les persones afectades per l’enviament de comunicacions comercials no sol·licitades fetes per correu electrònic o mitjans de comunicació electrònica equivalent (correu brossa).
  5. Altres funcions
    • Vetllar per la publicitat en els tractaments, amb la publicació anual d’una llista dels tractaments.
    • Cooperar internacionalment amb altres entitats anàlogues.
    • Representar Espanya en els fòrums internacionals en la matèria.
    • Controlar i observar el que disposa la llei reguladora de la funció estadística pública.
    • Elaborar una memòria anual, presentada per via del ministre de Justícia a les Corts.

Registre General de Protecció de Dades

El Registre General de Protecció de Dades és un òrgan de l’Agència Espanyola de Protecció de Dades encarregat de controlar que les empreses responsables facin publicitat de l’existència de fitxers i de la gestió de dades de caràcter personal.

L’objectiu final del Registre General de Protecció de Dades és fer possible l’exercici dels drets d’informació, accés, rectificació i cancel·lació de dades regulats en els articles 14 a 17 de la Llei orgànica 15/99, de 13 de desembre, de protecció de dades de caràcter personal.

Els fitxers amb dades de caràcter personal s’hauran d’inscriure en el Registre General de Protecció de Dades.

Concretament, s’han d’inscriure en el Registre General de Protecció de Dades els fitxers de:

  • Les administracions públiques.
  • Titularitat privada.
  • Les autoritzacions de transferències internacionals de dades de caràcter personal amb destinació a països que no prestin un nivell de protecció equiparable al que presta la LOPD a què es refereix l’art. 33.1 d’aquesta Llei.
  • Els codis tipus, a què es refereix l’article 32 de la LOPD.
  • Les dades relatives als fitxers que siguin necessaris per a l’exercici dels drets d’informació, accés, rectificació, cancel·lació i oposició.

Quins són els passos per dur a terme la inscripció inicial del fitxer al Registre General de Protecció de Dades?

AEPD: Agència Espanyola de Protecció de Dades.

Mitjançant la Resolució de l’AEPD, de 12 de juliol de 2006 -BOE 181, de 31 de juliol-, es va aprovar aquest procediment. Cal fer servir un formulari electrònic anomenat NOTA mitjançant el qual s’han de fer les sol·licituds d’inscripció de fitxers al Registre General de Protecció de Dades. Amb quest formulari NOTA es poden presentar de manera gratuïta notificacions per Internet amb un certificat de signatura electrònica. També es podran fer servir altres formularis per mitjà d’Internet o en format paper per al registre de fitxers.

El Registre General de Protecció de Dades també ofereix altres serveis com el desenvolupament de plantilles, formats i especificacions per a la creació de fitxers de dades de caràcter personal. Aquestes indicacions són molt útils per als responsables que desenvolupin els seus propis programaris per a la gestió i manipulació de les dades. A partir d’aquestes indicacions l’enviament de notificacions a l’Agència Espanyola de Protecció de Dades es pot fer de manera automàtica.

Amenaces a la seguretat

La seguretat de les bases de dades es podrà validar en el moment en què les dades es vegin sotmeses a molts tipus diferents d’amenaces com poden ser:

  • Robatoris interns d’empleats de bases de dades.
  • Frau i manipulació de les dades.
  • Pèrdua de confidencialitat.
  • Pèrdua de privacitat (a Internet i amb les xarxes socials).
  • Integritat de les dades.
  • Robatoris d’arxius.
  • Seguretat informàtica de les xarxes corporatives.
  • Atacs cibernètics contra països o organitzacions.
  • Errors en la seguretat dels servidors.

Tal com es pot veure hi ha molts tipus diferents d’amenaces que poden afectar la seguretat de les dades i es poden classificar en funció d’on es produeixen. S’ha de tenir en compte la ubicació de les bases de dades i els actors que entren en joc (ja que cadascun dels factors té les seves pròpies amenaces). És a dir, una base de dades corporativa es trobarà físicament en un disc d’un servidor, o bé a alguna de les oficines de l’organització o bé externalitzada a una altra ubicació. Aquesta base de dades necessitarà que es facin còpies de seguretat. A més, hi haurà l’accés remot per una xarxa informàtica (que pot ser pròpia, però, probablement, arribarà a Internet).

Veient només aquesta situació bàsica es detecten tres actors que poden rebre amenaces de seguretat pròpies, independents de les dades:

  • ordinador servidor,
  • xarxa (pròpia o Internet),
  • sistema de còpies de seguretat (propi o extern a una altra ubicació).

A aquestes possibles amenaces pròpies d’aquests actors, s’hi han d’afegir les amenaces pròpies dels motors de bases de dades.

Algunes d’aquestes amenaces es poden identificar com a amenaces accidentals, en què no hi ha mala intenció de qui comet l’errada. Hi ha d’altres que es consideren amenaces intencionades, en què se cerca de manera deliberada l’accés a dades de tercers amb l’objectiu de fer-ne un ús malintencionat.

Accidentals

Les amenaces a la seguretat accidentals són les actuacions que poden perjudicar l’estabilitat i la integritat de la base de dades però no de manera intencionada, sinó per alguna manca de precaució o per alguna errada humana no malintencionada. També poden succeir per altres situacions com una fallada elèctrica o per algun altre tipus de situació aliena als responsables de la base de dades.

Aquestes amenaces es poden entendre des del punt de vista d’accions externes a la base de dades (que, potser, fins i tot previstes, no es podran evitar). Però també es poden entendre com a vulnerabilitat de la base de dades. Aquestes vulnerabilitats farien que fos més probable que una amenaça s’acabés convertint en una realitat.

Algunes amenaces accidentals poden ser:

  • Accés a les contrasenyes d’usuaris amb accés a la base de dades (error puntual dels usuaris, error humà, perquè mostren o confien les seves dades d’accés o bé per escollir una clau de pas massa senzilla).
  • Manca de previsió de còpies de seguretat (error del dissenyador o de l’administrador de la base de dades).
  • Sistema de privilegis de màniga ampla. Aquest cas ocorre quan l’administrador de la base de dades no selecciona de manera correcta quins usuaris ha de permetre que accedeixin a quina informació, sinó que dóna accés total a tots els usuaris, amb els corresponents riscos que això comporta.
  • Comptes d’usuari sense auditar.
  • Fallada general del sistema elèctric (cal tenir previst un sistema d’alimentació ininterromput per a aquestes situacions).
  • Contrasenyes d’usuaris no segures.
  • Deixar sense validació l’accés a l’ordinador on són les dades.
  • Accés físic senzill a la sala de màquines, on són els servidors. Molta seguretat a la base de dades, però si una persona es pot apropar fins al servidor i, amb un llapis USB, copiar la informació, la resta no haurà servit de res.
  • Deixar sense encriptació la transmissió de les dades per les xarxes.
  • Fer servir xarxes sense fil sense encriptar.

Intencionades

Les amenaces o vulnerabilitats més perilloses són les que són intencionades. Si hi ha riscos accidentals, es poden intentar prevenir i les conseqüències poden ser assumibles. Una amenaça accidental es pot convertir en una vulnerabilitat que deixi una porta oberta a una amenaça intencionada.

Si s’ajunten dues o tres amenaces accidentals, les conseqüències poder ser molt més perilloses.

En canvi, una amenaça intencionada pot tenir conseqüències dràstiques, ja que com que hi ha la intenció d’una persona interessada al darrere, se cercaran els camins i les opcions necessaris per arribar a aconseguir allò que es vol.

Alguns exemples d’amenaces intencionades són:

  • Robatoris de documentació, de bases de dades, de les claus dels usuaris, del servidor on són les dades…
  • Frau: un exemple és el de la persona que, sense accés a la base de dades, hi accedeixi amb l’objectiu d’aconseguir dades sensibles, com números de compte, números secrets, contrasenyes…
  • Pèrdua de confidencialitat: una persona aliena accedeix a visualitzar dades confidencials d’un projecte o una persona.
  • Pèrdua de privacitat: una persona observa dades personals d’una persona o organització.
  • Pèrdua d’integritat: una persona aliena al projecte o al sistema modifica informació de la base de dades.

Algunes solucions

Hi ha moltes solucions per minimitzar tant les amenaces com els efectes que poden causar a la base de dades. La majoria de les solucions han de ser solucions preventives que minimitzin al màxim el risc que aquestes amenaces es converteixin en realitat.

Però també hi haurà solucions de contingència que permetran recuperar el sistema desfent els errors provocats o recuperant una versió estable de la base de dades.

Les solucions poden ser implementades pel mateix motor de base de dates, com pot ser que calgui l’acció de l’administrador de la base de dades per implementar-ne algunes.

Alguns exemples de solucions (tant preventives com de contingència) poden ser:

  • Possibilitat de crear comptes d’usuari i contrasenya, amb la qual cosa un usuari s’ha d’autenticar abans d’accedir a la base de dades.
  • Assigna privilegis i rols als usuaris, i limita les parts de la base de dades a les quals cada usuari podrà accedir. Això implica l’accés a determinades parts de las bases de dades i especificar quines accions podran dur a terme.
  • Implementació de sistema de còpies de seguretat.
  • Fragmentació de la base de dades en diferents ubicacions.
  • Encriptació de les dades que han de viatjar per la xarxa.
  • Utilització de certificats digitals que permeti verificar que l’usuari que envia la informació sigui qui diu que és.
  • Tallafocs, que limitarà l’accés a la xarxa per on es moguin les dades.
  • Servidor intermediari (proxy), amb la finalitat de controlar les peticions que arribin al servidor i decideixin si s’han d’atendre o no.

El llenguatge de control de les dades DCL

DCL és un acrònim en anglès de data control language, és a dir, llenguatge de control de dades.

A l’hora d’accedir a un sistema gestor de bases de dades i interactuar-hi es podran fer servir llenguatges que permetin manipular, controlar o definir les dades. Aquests llenguatges permeten l’accés a bases de dades relacionals, sobre les quals es podran dur a terme consultes, modificacions, insercions o esborrament de dades, basant-se en l’àlgebra i el càlcul relacional, de manera senzilla.

Aquests llenguatges es classifiquen, genèricament, en tres tipus de llenguatges:

  • Llenguatge de definició de dades (DDL), llenguatge encarregat de la creació de la base de dades amb les taules, els seus camps, les claus primàries i foranes els dominis o les vistes, entre d’altres.
  • Llenguatge de manipulació de dades (DML), llenguatge encarregat de la inserció, la modificació i l’esborrament de les dades i també de les seves consultes.
  • Llenguatge de control de dades (DCL), és l’encarregat d’establir els mecanismes de control. Ofereix solucions als problemes de concurrència dels usuaris i garanteix la seguretat de les dades.

Encara que hi ha autors que afegeixen dos llenguatges més a aquesta classificació: el DQL (data query language) i el TCL (transaction control language).

D’altra banda, hi ha llenguatges de programació procedimentals, propis de cada sistema gestor de bases de dades, que permetran desenvolupar algoritmes per poder fer servir de manera òptima les sentències desenvolupades en els tres tipus de llenguatges definits. Els llenguatges de programació procedimentals ofereixen algunes funcionalitat com la possibilitat de dur a terme:

  • funcions,
  • cursors,
  • procediments emmagatzemats,
  • disparadors,
  • control de flux d’execució.

SQL és un acrònim en anglès de structured query language, és a dir, llenguatge estructurat de consultes.

Com a exemple de llenguatge relacional orientat a usuari es farà servir el de més influència: l’SQL. És considerat el llenguatge més important per a la manipulació de bases de dades relacionals. Aquest llenguatge ofereix sentències que permeten l’execució dels tres tipus de llenguatges definits anteriorment en un sol llenguatge. Per aquesta raó, en teoria hi ha tres tipus de llenguatges quan a la pràctica més utilitzada només es fa servir un que aglutina els tres.

Com a exemple de llenguatges de programació procedimentals es poden trobar molts, depenent del sistema gestor de bases de dades sobre el qual es vulgui treballar. Alguns dels més coneguts són:

  • PL/SQL (Oracle)
  • PL/MySQL (MySQL)
  • Informix 4GL (Informix)
  • PHP (varis SGBD)
  • Transact – SQL (SQL Server)

El llenguatge SQL és un llenguatge declaratiu, és a dir, no és imperatiu o procedimental. El llenguatge SQL indicarà què es vol fer, no indicarà com s’ha de fer. Per aquesta raó, necessita al seu costat un altre llenguatge sí procedimental que doni les instruccions al sistema per fer una sèrie d’operacions.

Aquest apartat se centra en el llenguatge de control de dades (DCL). S’encarrega de totes les instruccions que tenen a veure amb l’administració de la base de dades:

  • creació d’usuaris,
  • assignació de privilegis,
  • accessos,
  • tunning,

Aquest llenguatge pot resumir les seves funcionalitats en dues: oferir accions per dur a terme transaccions i oferir solucions per garantir la seguretat de les dades. Aquestes dues funcionalitats són clau per solucionar els problemes d’una de les característiques més importants d’una base de dades: la capacitat de ser-ne multiusuari. L’accés comú de diversos usuaris a les mateixes dades pot donar peu a problemes molt importants, com el problema de la protecció de dades i l’assignació posterior de privilegis. Per tant, requereix un tractament especial.

Les dues funcionalitats estan directament relacionades amb els conceptes de confidencialitat, integritat i disponibilitat:

  • Amb la possibilitat de donar permisos als usuaris per accedir a part de la informació s’ofereix una solució al problema de la confidencialitat.
  • Amb la possibilitat de dur a terme execucions de consultes (query) a partir de transaccions s’ofereixen solucions als problemes d’integritat i disponibilitat.

Les transaccions

Quan s’han de dur a terme un conjunt de sentències de definició o de manipulació de dades que estan estretament lligades entre elles, caldrà que siguin executades com si es tractés d’una sola sentència. Si es poden executar totes de manera satisfactòria, llavors la transacció es donarà per finalitzada i es validaran els canvis duts a terme a la base de dades. En cas contrari, caldrà desfer tots els canvis i deixar la base de dades igual que si cap de les sentències executades no s’hagués començat.

Exemple de transacció

Per exemple, si es vol fer una compra d’una entrada per a un espectacle en un portal web, primer caldrà mostrar quantes entrades queden lliures, mostrar els seients lliures i els preus, permetre a l’usuari que triï quin l’interessa. Si l’usuari vol, finalment, comprar uns seients determinats, el sistema haurà de validar que el pagament ha estat correcte, indicar que els seients es troben ocupats, rebaixar el nombre total de seients lliures…

Si durant tot aquest procés alguna de les sentències de manipulació de les dades no s’executés correctament, el sistema quedaria inestable (de manera que no quadrarien, per exemple, els seients oferts i el nombre total de seients disponibles). Per aquesta raó, és necessari garantir que o bé s’executen totes les sentències de manipulació de dades o no se n’executa cap.

Es pot definir que una transacció és un conjunt d’instruccions que formen una unitat lògica de treball, una unitat atòmica que es garanteix que s’executarà completament o no s’executarà.

Per limitar les instruccions que poden formar part d’una transacció es pot començar amb la primera ordre SQL o es pot fer servir la sentència BEGIN o BEGIN TRANSACTION o SET TRANSACTION que indicarà que tot el que hi hagi a continuació fins a trobar-se la sentència de finalització s’entendrà com una unitat atòmica.

Tot el que hi hagi a continuació del BEGIN no tindrà una execució física fins que no s’arribi al final de la transacció. D’aquesta manera es garanteix que, en cas de fallada del sistema (disc complet, tall d’energia, fallada del maquinari…), la base de dades es veurà alterada per totes les sentències o per cap.

Les dues sentències que poden finalitzar el contenidor de sentències que formen la transacció poden ser:

1. Commit work: aquesta sentència executarà, seguint el mateix ordre establert, totes les sentències incloses dins del establert com a transacció.

Una vegada finalitzada l’execució de totes les sentències se’n podrà començar una de nova.

La seva sintaxi és:

  1. COMMIT [WORK | TRANSACTION]

La paraula Work és opcional.

2. RollBack work: aquesta sentència permet desfer una sèrie de consultes que s’hagin anat executant però que no s’hagin confirmat amb la sentència COMMIT. Les operacions que es podran desfer són les de:

  • INSERT,
  • UPDATE,
  • DELETE.

Trobant una sentència ROLLBACK es desfaran totes les modificacions fetes sobre la base de dades fins a trobar el darrer estat estable. Serà com fer servir la funcionalitat UNDO dels programes ofimàtics.

La seva sintaxi és:

  1. ROLLBACK [WORK | TRANSACTION]
  2. [SAVEPOINT savepointname]

La paraula Work és opcional.

Un savepointname permetrà fer una utilització més fina de les transaccions. Si es marquen un o diversos punts de seguretat al llarg del codi, segons interessi es podrà fer un ROLLBACK no fins al principi de la transacció, sinó fins al punt de seguretat que sigui més adient. En el cas de fer servir aquesta instrucció, el ROLLBACK restablirà el conjunt de dades fins al punt especificat.

D’aquesta manera, quan es van executant les consultes que es troben a partir d’una sentència BEGIN, aquestes no representaran una execució física sobre la base de dades. Les taules afectades es veuran modificades de manera lògica, i no es confirmaran les alteracions fins a arribar a la sentència COMMIT o es descartaran en arribar a la sentència ROLLBACK.

Què succeeix si una transacció començada no finalitza, és a dir, s’arriba al final del programa sense cap ordre d’acceptació o confirmació o de desfer? La norma no especifica quina de les dues accions pot tenir lloc, així que dependrà de la implementació del sistema gestor de base de dades.

Exemple de transacció començada no finalitzada

Tenim una base de dades relacional amb les relacions de productes i proveïdors. En un moment determinat, un proveïdor ha de tancar la seva empresa. Caldrà actualitzar la base de dades de tal manera que els productes vinculats amb el proveïdor també s’esborrin de la base de dades (o passin a una altra relació amb dades històriques). Es podria dur a terme l’execució següent:

  1. BEGIN TRANSACTION
  2. DELETE FROM Proveïdors WHERE PK_Codi_Proveïdor = 3
  3. DELETE FROM Productes WHERE FK_Proveïdor =3
  4. COMMIT TRANSACTION

En el cas de fallada de sistema després del primer DELETE, si no s’hagués implementat amb transaccions, s’hauria esborrat el proveïdor però els productes dependents d’aquell proveïdor continuarien en la taula de manera incorrecta.

La seguretat

El propietari de la base de dades és qui en té tots els privilegis, però no és l’únic que hi accedeix. A una base de dades poden accedir moltes persones, que moltes vegades potser no tenen res a veure o no es coneixen en fer els accessos remotament per diferents motius.

Per exemple, a una base de dades amb l’estoc de productes d’una distribuïdora amb moltes botigues ubicades a diferents poblacions podran accedir per manipular o consultar dades persones tant distintes com:

  • Receptors de productes als magatzems, per actualitzar-ne els estocs.
  • Treballadors per consultar si hi ha estoc d’un producte determinat.
  • Les màquines registradores, automàticament, per actualitzar l’estoc després d’una venda.
  • Els encarregats de les compres, per consultar la situació i prendre decisions.
  • Els treballadors del departament de control per prendre un altre tipus de decisions.
  • Els clients finals, des de casa seva, consultant si poden anar a comprar aquell producte determinat.

Segons es veu en aquest situació, poden arribar a ser moltes mans les que accedeixin a les dades. Però no serà el mateix el que ha de poder veure un client final des de casa seva que el que ha de veure un treballador del departament de control. Per aquesta raó, és important assignar una sèrie de privilegis als usuaris que accedeixen a les dades, de tal manera que cada usuari tingui un perfil assignat amb uns permisos determinats sobre la base de dades, en global, i sobre les relacions, en particular.

L’assignació dels privilegis es pot dur a terme des de dos possibles punts de vista:

  • Des del punt de vista de l’usuari.
  • Des del punt de vista de les taules o les vistes.

La sentència que es fa servir en ambdós casos per assignar permisos és la sentència GRANT.

La seva sintaxi és:

  1. GRANT { <Privilegi1> [, < Privilegi2> ..] } | ALL
  2. ON [<User1>.]<Objecte>
  3. TO {<User2> [, <User3> ...]} | PUBLIC.

Els privilegis poden ser:

  • ALL: assigna tots els permisos possibles a una taula o a una vista.
  • SELECT: assigna el permís de fer consultes (llegir) a un usuari o sobre una taula concreta.
  • INSERT: assigna el permís d’inserció de dades a un usuari o sobre una taula concreta.
  • UPDATE: assigna el permís de modificació de dades a un usuari o sobre una taula concreta.
  • DELETE: assigna el permís d’esborrament de dades a un usuari o sobre una taula concreta.
  • INDEX: assigna el permís de creació d’índexs per a una taula concreta o per a un usuari.
  • ALTER*: assigna el permís de modificació de l’estructura d’una taula o a un usuari.

Un Objecte pot ser una taula o una vista. Un User es refereix a un usuari concret.

Per exemple:

  1. GRANT SELECT
  2. ON Productes
  3. TO Joan

En aquest exemple s’atorga el permís de consultes a l’usuari Joan sobre la taula Productes.

La sentència que es fa servir per treure els permisos a un usuari determinat o sobre una taula determinada és REVOKE.

La seva sintaxi és:

  1. REVOKE {ALL | SELECT | INSERT | DELETE | INDEX | ALTER |
  2. UPDATE | UPDATE(<Columna1> [, <Columna2> ...])}
  3. ON {<Taula> | <Vista>}
  4. FROM {PUBLIC | <Usuari1> [, <Usuari2> ...]}
  5. {RESTRICT/CASCADE}

Un exemple d’utilització de la sentència REVOKE és:

  1. REVOKE ALL
  2. ON Proveïdors
  3. TO Joan

en què ara es treuen tots els privilegis sobre la taula Proveïdors a l’usuari Joan, que no podrà ni accedir a registres d’aquesta taula, ni modificar-los, ni esborrar-los.

Les opcions RESTRICT/CASCADE permeten allargar o aturar l’aplicació de la sentència REVOKE al llarg dels usuaris que s’hagin anant donant permisos. És a dir, si un usuari B va donar permisos a l’usuari C per accedir a una taula determinada. Ara l’usuari B rep una sentència que revoca els seus privilegis per accedir a aquesta taula amb la indicació CASCADE. Automàticament l’usuari C perdrà els privilegis d’accés a aquesta taula també.

Altres sentències DCL

A més de les sentencies sobre transaccions i seguretat, cal referenciar altres sentències també molt útils i importants que s’engloben dins del llenguatge de control de dades.

És el cas de l’accés múltiple a les taules i les estratègies existents de bloqueig.

Per exemple, a partir d’una base de dades amb informacions sobre vols que es fa servir per accedir des d’un entorn web per reservar i comprar bitllets, dos usuaris accedeixen a la vegada a la consulta de places per a un vol determinat. Cada usuari vol comprar tres bitllets, però només en queden dos. Si hi accedeixen a la vegada i cerquen el mateix vol abans que l’altre hagi fet efectiva la compra, si no s’han pres mesures, els dos veuran places disponibles i pensaran que les poden comprar. En algun moment caldria establir un criteri per decidir a quin dels dos li vendran els bitllets, i l’altre es quedarà amb un pam de nas.

Per solucionar aquest problema es poden fer servir instruccions que permetin bloquejar una taula determinada mentre un usuari l’està fent servir.

La sentència SHARE LOCK permet compartir l’ús de la taula per més d’un usuari a la vegada, si es troba en mode compartició.

La seva sintaxi és:

  1. LOCK TABLE [<User>.]<tablename> IN SHARE [nowait]

Una altra sentència és EXCLUSIVE LOCK. Aquesta sentència permet bloquejar una taula per a la resta d’usuaris de la base de dades. Aquesta sentència és fàcil d’utilitzar, però comporta molt temps d’espera per a la resta d’usuaris.

La seva sintaxi és:

  1. LOCK TABLE [<User>.]<tablename> IN EXCLUSIVE [nowait]

Per solucionar els problemes de la sentència anterior es pot fer servir un sistema anomenat bloqueig exclusiu de línies.

El bloqueig de cada línia és, sens dubte, la millor manera de resoldre el problema de les esperes. Es recomana utilitzar un dels mètodes de bloqueig de les dades només si és necessari.

La seva sintaxi és:

  1. SELECT ....
  2. FROM ...
  3. [WHERE ...]
  4. [ORDER BY ...]
  5. FOR UPDATE OF Spalte1 [, Spalte2] ...

Un exemple d’utilització:

  1. SELECT Llocs, Des de, Fins, Ubicació
  2. FROM Viatges
  3. WHERE Ubicació = 'Rom'
  4. FOR UPDATE OF Llocs
  5. UPDATE Viatges
  6. SET Llocs = Llocs – Llocs_reservats
  7. WHERE Ubicació = 'Rom'
  8. Commit
Anar a la pàgina anterior:
Referències
Anar a la pàgina següent:
Activitats