Segurtasuna funtsezkoa da datu-basearen kudeatzaileei beren gigabyteak babestea, enpresa pribatuen datuak baimenik gabeko kanpokoen eta insiders-en baimenik gabeko autoritateak gainditzen saiatzen diren bitartean. Datuen kudeaketa erlazionalen sistema guztiek mehatxu horiek minimizatzeko diseinatutako segurtasun mekanismo mota batzuk eskaintzen dituzte. Microsoft Access- ek eskaintzen duen pasahitz babes sinplea erabiltzaile / rol-egitura konplexua da, Oracle eta Microsoft SQL Server bezalako datu-base erlazional aurreratuek onartzen dutenak. Artikulu honek Estrukturatutako kontsulta-hizkuntza (edo SQL ) inplementatzen duten datu-base guztietako segurtasun mekanismoak ditu. Elkarrekin, datuen sarbide kontrolak indartzeko prozesuan zehar ibiliko gara eta zure datuen segurtasuna bermatuko dugu.
erabiltzaileak
Server oinarritutako datu-baseek ordenagailu sistema eragileetan erabiltzen den antzeko kontzeptu bat onartzen dute. Microsoft Windows NT eta Windows 2000-en aurkitutako erabiltzaile / taldearen hierarkia ezagutzen baduzu, SQL Server-en eta Oracle-k onartzen dituen erabiltzaile / rol-taldeek oso antzekoak dira.
Oso gomendagarria da zure datu basean sartzen diren pertsona bakoitzeko banakako datu-baseen erabiltzaile-kontuak sortzea. Teknikoki posible da erabiltzaileen arteko kontuak partekatzea edo, besterik gabe, erabiltzailearen kontu bat erabiltzea, zure datu-basera sartu behar duen erabiltzaile mota bakoitzerako, baina praktika hau deszurtzen dut bi arrazoirengatik. Lehenik eta behin, banakako erantzukizuna ezabatuko du: erabiltzaileak datu-basea aldatu egiten badu (esate baterako, $ 5,000 goratu beharra dauka), ezin izango duzu atzera egin pertsona zehatz bati auditoretza erregistroen bidez. Gainera, erabiltzaile jakin batek zure erakundea uzten badu eta datu-basetik sarbidea kendu nahi baduzu, erabiltzaileari oinarritzen den pasahitza aldatzeko behartuta egongo zara.
Erabiltzaile-kontuak sortzeko metodoak plataforma batetik bestera aldatzen dira eta zure DBMS zehaztapen dokumentua prozedura zehatza kontsultatu beharko duzu. Microsoft SQL Server erabiltzaileak sp_adduser biltegiratutako prozeduraren erabilera aztertu beharko luke. Oracle datu-basearen administratzaileak erabiltzailearen komando erabilgarria sortuko du. Autentifikazio autentifikazio eskemak ere ikertu nahi dituzu. Adibidez, Microsoft SQL Server-ek Windows NT segurtasun integratua erabiltzea onartzen du. Eskema horren pean, erabiltzaileek datu-basearen bidez identifikatzen dituzte Windows NTren erabiltzaile-kontuak eta ez dira beharrezkoak diren erabiltzaile-ID eta pasahitz bat sartu datu-basera sartzeko. Ikuspegi hau oso ezaguna da datu-baseetako administratzaileen artean, kudeaketa-administrazioko langileen kudeaketa-kargak kargatzen baititu eta azken erabiltzaileak saio-hasiera bakarra errazten du.
rolak
Erabiltzaile kopuru txikian ingurune batean bazaude, ziur aski zure beharren arabera zure erabiltzaile-kontuak sortzea eta baimenak esleitzea zuzenean nahikoa izango da. Hala ere, erabiltzaile ugari badituzu, seguruenik kontu eta baimen egokiak mantenduko dituzu. Zama hori errazteko, datu-base erlazionalek funtzioen nozioa onartzen dute. Datu-basearen funtzioak Windows NT taldearen antzeko funtzioak betetzen dituzte. Erabiltzaile-kontuak rolari esleitu zaizkio (ro) eta baimenak rolari esleitu zaizkio, banakako erabiltzaile-kontuak baino. Esate baterako, DBA rol bat sortu genezake eta administratzaileen erabiltzaileen kontuak gehitu rol honetan. Behin hau egin ondoren, baimen zehatz bat eman ahal izango diegu egungo (eta etorkizuneko) administratzaile guztiei rolari baimena emanez. Berriro ere, rolak sortzeko prozesuak plataforma batetik bestera aldatu egiten dira. MS SQL Server-eko administratzaileek sp_addrole gordetako prozedura ikertu beharko lukete Oracle DBA-k CREATE ROLE sintaxia erabili behar duten bitartean.
Baimenak ematea
Orain, erabiltzaileak gure datu-basean gehitu ditugunean, segurtasuna indartzen hasiko gara baimenak gehituz. Gure lehen urratsa datu erabiltzaileen baimenak egokiak izango dira. Horretarako lortuko dugu SQL GRANT adierazpenaren bidez.
Hona hemen adierazpenaren sintaxia:
GRANT
[ONEA ]
TO
[MAILAREN ARABERA]
Orain, aztertu lineako adierazpen hau. Lehen lerroa, GRANT , aukera ematen digun mahaiaren baimen zehatzak zehazten uzten digu. Mahaiko maila baimenak izan ditzakezu (SELECT, INSERT, UPDATE eta DELETE bezalakoak) edo datu-basearen baimenak (adibidez, CREATE TABLE, ALTER DATABASE eta GRANT). Baimen bat baino gehiago eman daiteke GRANT adierazpen bakarrean, baina mahai-mailako baimenak eta datu-baseko baimenak ezin dira konbinatu adierazpen bakarrean.
Bigarren lerroa, ON
, mahai-mailako baimenei kaltetutako taula zehazteko erabiltzen da. Line hau ez da zehazten datu-baseen baimenak emanez gero. Hirugarren lerroan baimenak ematen zaizkion erabiltzailea edo rola zehazten du.
Azkenean, laugarren lerroa, MAIATZA OPTIONarekin, aukerakoa da. Lerro hau adierazpenean sartzen bada, eragindako erabiltzaileek beste erabiltzaile batzuei baimena ematen diete. Kontutan izan MAILEN AUKERA AUKERA ez dela zehaztu behar baimenek rol bat esleitzen zaienean.
Adibideak
Ikus dezagun adibide batzuk. Gure lehen eszenatokian, duela gutxi, 42 datu-sarrera eragileren talde bat kontratatu dugu, bezeroaren erregistroak gehituz eta mantenduz. Bezeroen taula informazioan sartzeko gai izan behar dute, informazio hori aldatu eta taulan erregistro berriak gehitu. Ez dute datu-basetik erregistro bat erabat ezabatu. Lehenik eta behin, erabiltzaile bakoitzaren kontuak sortu beharko genituzke operadore bakoitzarentzat, eta ondoren, gehitu guztiak rol berri bat, DataEntry. Ondoren, hurrengo SQL adierazpena erabili behar ditugu baimen egokiak emateko:
ERANTZUKIZUN EGIAZTATU, SARTU, EGUNERATZEA
ON Bezeroak
DataEntry-ra
Eta horixe da hori guztia! Orain aztertu kasu bat datu-basearen baimenak esleitzeko ari gara. DBA roleko kideak gure datu-baseari mahai berriak gehitzeko baimena eman nahi diegu. Gainera, beste erabiltzaile batzuek baimena eman ahal izango diete horri. Hona hemen SQL adierazpena:
TAULA ERE ZAHARRA
TO DBA
MAILAKO ESKULIBURUA
Kontutan izan DUTEN MAILAKO OPTION-lineekin sartzen dugula gure DBAak baimen hori beste erabiltzaile batzuei eslei diezaiekeela ziurtatzeko.
Baimenak kentzea
Baimenik eman ondoren, askotan berretsi behar da geroago berreskuratzeko. Zorionez, SQL-k REVOKE komandoa eskaintzen digu aurrez baimendutako baimenak kentzeko. Hemen dago sintaxia:
REVOKE [GRANT OPTION FOR]
ON
FROM
Komando honen sintaxia GRANT komandoaren antzekoa dela nabarituko duzu. Ezberdintasun bakarra da REVOKE komando lerroan AMAIERA AUKERAKOAREKIN zehaztea komandoaren amaieran baino. Adibide gisa, imajinatu dugu Mariaren aldez aurretik emandako baimena, bezeroen datu-basearen erregistroak kentzeko. Hurrengo komandoa erabiliko dugu:
REVOKE DELETE
ON Bezeroak
Maryengatik
Eta horixe da hori guztia! Microsoft SQL Server-ek onartzen duen mekanismo gehigarria dago aipatuta, DENY komandoa. Komando hau erabiltzaileari baimena ukatzeko modu esplizituki uztea ahalbidetzen du, agian egungo eta etorkizuneko rol bateko kideak izan litezkeela. Hemen dago sintaxia:
DENY
ON
TO
Adibideak
Gure aurreko adibidean itzultzeko, imajinatu ezazu Maryk ere Bezeroen mahairako sarbidea izan zuen kudeatzaileen papera ere. Aurreko REVOKE adierazpenak ez luke nahikoa izango mahairako sarbidea ukatzea. Emandako baimena kenduko luke bere erabiltzaile-kontuari zuzendutako GRANT adierazpen baten bidez, baina ez luke eragingo Administrazioak rolaren partaidetzarekin lortutako baimenak. Hala ere, DENY adierazpen bat erabiltzen badugu, baimenaren oinordetza blokeatuko du. Hona hemen komandoa:
DENY DELETE
ON Bezeroak
TO Maria
DENY komandoa, funtsean, "baimen negatiboa" sortzen du datu-basean sartzeko kontroletan. Orduan bezeroak Bezeroen taula errenkadak ezabatzeko baimena ematen badiogu, ezin dugu GRANT komandoa erabili. Komandoa berehala lehendik DENYren gainetik kenduko litzateke. Horren ordez, REVOKE komandoa lehenbailehen erabili beharko genituzke honela baimen negatiboa kentzeko:
REVOKE DELETE
ON Bezeroak
Maryengatik
Komando hau baimen positiboa kentzeko erabiltzen denaren antzekoa da. Gogoratu DENY eta GRANT komandoak antzeko modako lanak egiten dituztela *: bi baimenak (positiboak edo negatiboak) sortzen dituzte datu-basean sartzeko kontrol-mekanismoan. REVOKE komandoak zehaztutako erabiltzaileari baimen positiboak eta negatiboak kentzen dizkio. Komando hau igorri ondoren, Maryk mahaiaren errenkadak ezabatu ahal izango ditu baimen hori duen rolaren kide bada. Bestela, GOALA komandoa igorri ahal izango da DELETE baimena bere kontura zuzenean emateko.
Artikulu honen zehar, kontsulta estandarraren hizkuntza onartzen duten sarbide kontrolerako mekanismoei buruz asko ikasi duzu. Sarrera honek abiapuntu ona eman beharko luke, baina zure DBMS dokumentazioari erreferentzia egitea sustatzen dut zure sistemak onartzen dituen segurtasun neurri garrantzitsuak ezagutzeko. Hainbat datu- baseek sarbide aurreratuagoak kontrolatzeko mekanismoak onartzen dituzte, adibidez zutabe jakin batzuen baimenak ematea.