Kaikki ovat suhteellisia tietokantojen hallintajärjestelmät tarjota jonkinlainen luontainen suojausmekanismi, joka on suunniteltu minimoimaan tietojen menetys, korruptio tai tietovarkaus. Ne vaihtelevat yksinkertaisesta salasanasuojauksesta, jonka tarjoaa Microsoft Access monimutkaiseen käyttäjä / roolirakenteeseen, jota tukevat edistyneet relaatiotietokannat, kuten Oraakkeli jaMicrosoft SQL Palvelin. Jotkin suojausmekanismit ovat yhteisiä kaikille tietokannoille, jotka toteuttavatJäsennelty kyselykieli.
Käyttäjätason suojaus
Palvelinpohjaiset tietokannat tukevat a käyttäjä samanlainen käsite kuin tietokoneiden käyttöjärjestelmissä. Jos olet perehtynyt käyttäjän / ryhmän hierarkiaan Microsoft Windows NT ja Windows 2000, huomaat, että SQL Serverin ja Oraclen tukemat käyttäjä / rooliryhmät ovat samanlaisia.
Luo yksilölliset tietokannan käyttäjätilit jokaiselle henkilölle, jolla on pääsy tietokantaan.
Vältä yleisten tilien luomista useille ihmisille. Ensinnäkin tämä käytäntö poistaa yksilöllisen vastuun - jos käyttäjä tekee muutoksia tietokantaan (sanotaan esimerkiksi antaessaan itselleen 5000 dollarin korotuksen), et voi jäljittää sitä tiettyyn henkilöön tarkastuksen avulla lokit. Toiseksi, jos tietty käyttäjä poistuu organisaatiosta ja haluat poistaa hänen pääsynsä tietokantaan, sinun on vaihdettava salasana, johon kaikki käyttäjät luottavat.
Käyttäjätilien luomisen menetelmät vaihtelevat käyttöympäristöittäin, ja sinun on käytettävä tarkkaa menettelytapaa DBMS-järjestelmäkohtaisissa ohjeissa. Microsoft SQL Server -käyttäjien tulisi tutkia verkkotunnuksen käyttö sp_adduser tallennettu menettely. Oracle-tietokannan järjestelmänvalvojat löytävät LUO KÄYTTÄJÄ komento hyödyllinen. Haluat ehkä myös tutkia vaihtoehtoisia todennusmenetelmiä. Esimerkiksi Microsoft SQL Server tukee Windows NT Integrated Securityn käyttöä. Tämän järjestelmän mukaan käyttäjät tunnistetaan tietokantaan niiden Windows NT -käyttäjätilien perusteella, eikä heidän tarvitse antaa ylimääräistä käyttäjätunnusta ja salasanaa tietokantaan pääsemiseksi. Tämä lähestymistapa on suosittu tietokannan ylläpitäjien keskuudessa, koska se siirtää tilin taakkaa verkonhallintahenkilöstölle, ja se tarjoaa yksinkertaisen kirjautumisen verkkoon loppukäyttäjä.
Roolitason turvallisuus
Jos olet ympäristössä, jossa on pieni määrä käyttäjiä, huomaat todennäköisesti, että käyttäjätilien luominen ja käyttöoikeuksien osoittaminen suoraan heille riittää tarpeisiisi. Jos sinulla on kuitenkin paljon käyttäjiä, sinua yllättää ylläpitämällä tilejä ja asianmukaisia käyttöoikeuksia. Tämän taakan helpottamiseksi relaatiotietokannat tukevat roolit. Tietokannan roolit toimivat samalla tavalla kuin Windows NT -ryhmät. Käyttäjätilit määritetään rooleille ja käyttöoikeudet määritetään sitten koko roolille yksittäisten käyttäjätilien sijaan. Voit esimerkiksi luoda DBA-roolin ja lisätä sitten hallintohenkilöstön käyttäjätilit tähän rooliin. Tämän jälkeen voit määrittää erityisen luvan kaikille nykyisille (ja tuleville) järjestelmänvalvojille yksinkertaisesti osoittamalla luvan roolille. Jälleen kerran roolien luomisen menettelyt vaihtelevat alustasta toiseen. MS SQL Server -järjestelmänvalvojien tulisi tutkia sp_addrole tallennettu menettely, kun taas Oracle DBA: n tulisi käyttää LUO Rooli syntaksi.
Lupien myöntäminen
Nyt kun olemme lisänneet käyttäjiä tietokantaamme, on aika aloittaa turvallisuuden vahvistaminen lisäämällä käyttöoikeuksia. Ensimmäinen askelemme on antaa asianmukaiset tietokanta-oikeudet käyttäjillemme. Saavutamme tämän käyttämällä SQL GRANT -käskyä.
Tässä on lauseen syntaksi:
MYÖNTÄÄ.
[PÄÄLLÄ.
TO.
[AVUSTUSVAIHTOEHDOLLA]
Katsotaanpa nyt tätä lausetta rivi riviltä. Ensimmäinen rivi, MYÖNTÄÄ , antaa meille mahdollisuuden määrittää myöntämämme taulukon käyttöoikeudet. Nämä voivat olla joko taulukon tason käyttöoikeuksia (kuten SELECT, INSERT, UPDATE ja DELETE) tai tietokannan käyttöoikeuksia (kuten CREATE TABLE, ALTER DATABASE ja GRANT). Yhdessä GRANT-käskyssä voidaan myöntää useampia kuin yksi käyttöoikeus, mutta taulukon tason käyttöoikeuksia ja tietokantatason käyttöoikeuksia ei voida yhdistää yhteen lausekkeeseen.
Toinen rivi, PÄÄLLÄ
Lopuksi, neljäs rivi, AVUSTUSVAIHTOEHDOLLA, on valinnainen. Jos tämä rivi sisältyy lausekkeeseen, käyttäjä, jota asia koskee, saa myös myöntää nämä samat oikeudet muille käyttäjille. Huomaa, että WITH GRANT -VAIHTOEHTOA ei voida määrittää, kun käyttöoikeudet on määritetty roolille.
Esimerkkejä tietokannan avustuksista
Katsotaanpa muutama esimerkki. Ensimmäisessä skenaariossa olemme äskettäin palkanneet 42 tietojen syöttöoperaattorin ryhmän, joka lisää ja ylläpitää asiakastietoja. Heidän on käytettävä Asiakkaat-taulukon tietoja, muokattava näitä tietoja ja lisättävä taulukkoon uusia tietueita. Heidän ei pitäisi voida poistaa tietuetta kokonaan tietokannasta.
Ensinnäkin meidän pitäisi luoda käyttäjätilit jokaiselle operaattorille ja lisätä ne sitten kaikki uuteen rooliin, Tiedon syöttö. Seuraavaksi meidän tulisi käyttää seuraavaa SQL-käskyä antaa heille tarvittavat oikeudet:
ANNA VALINTA, LISÄÄ, PÄIVITÄ.
ON Asiakkaat.
TO DataEntry.
Tarkastellaan nyt tapausta, jossa annamme tietokantatason käyttöoikeudet. Haluamme sallia DBA-roolin jäsenten lisätä uusia taulukoita tietokantaamme. Lisäksi haluamme heidän pystyvän antamaan muille käyttäjille luvan tehdä sama. Tässä on SQL-käsky:
AVUSTUKSEN LUOMISTAULUKKO.
DBA: lle.
AVUSTUSVAIHTOEHDOLLA.
Huomaa, että olemme sisällyttäneet WITH GRANT OPTION -rivin varmistaaksemme, että DBA: t voivat osoittaa tämän oikeuden muille käyttäjille.
Poistetaan käyttöoikeuksia
SQL sisältää REVOKE-komennon aiemmin annettujen käyttöoikeuksien poistamiseksi. Tässä on syntaksi:
PERUUTA [AVUSTUSVAIHTOEHTO]
PÄÄLLÄ.
Alkaen.
Huomaat, että tämän komennon syntaksi on samanlainen kuin GRANT-komennon. Ainoa ero on, että WITH GRANT OPTION -asetuksella määritetään REVOKE-komentorivillä eikä komennon lopussa. Kuvitellaan esimerkiksi, että haluamme peruuttaa Marialle aiemmin myönnetyn luvan poistaa tietueita Asiakastietokannasta. Käytämme seuraavaa komentoa:
PERUUTA POISTA.
ON Asiakkaat.
Mariasta.
Microsoft SQL Server tukee vielä yhtä mekanismia, joka on mainitsemisen arvoinen - DENY-komento. Tätä komentoa voidaan käyttää kieltämään nimenomaisesti käyttöoikeus käyttäjältä, joka heillä voisi muuten olla nykyisen tai tulevan roolijäsenyyden kautta. Tässä on syntaksi:
KIELTO.
PÄÄLLÄ.
TO.