Käyttöoikeudet (Security)
Timo Ahjos 14.5.1999
Hallinnollisen salasanan määrittely
Järjestelmässä on yksi hallinnollinen salasana, jonka avulla pääsee käsiksi kaikkiin
käyttöoikeuksien määrittelyihin. Se annetaan ikkunassa, joka tulee esille,
kun ohjelman asennuksen jälkeen ensimmäisen kerran mennään päävalikon kohtaan
File / Database Administration.
Hallinnollinen salasana on nykyisellään hyvin kriittinen juttu. Sitä
ei voi muuttaa, koska sitä käytetään samalla taulujen ja käyttäjätunnusten salausalgoritmin avaimena. Lähetin tästä aiheesta dBASE:n tekijöille
muutospyynnön.
Hallinnollista salasanaa ei saa järjestelmästä mitenkään näkyviin.
Sivun alkuun
Määrittelylomakkeelle meno
Käyttäjätunnusten määrittelyyn päästään päävalikon kohdasta
File / Database Administration, josta avautuu sama lomake,
jota käytettiin edellä viite-eheyden (Referential Integrity) määrittelyyn:
Mikäli on tarkoitus määritellä taulukohtaisia käyttöoikeuksia,
ennen tämän lomakkeen avaamista pitää käydä esim. Navigatorilla valitsemassa se
tietokanta tai hakemisto, jossa käsiteltävät tietokantataulut ovat. Jos tietokannalle
on annettu BDE:ssä alias-nimi, se näkyy tällä lomakkeella kohdassa "Current database",
mutta muuten tietokannalla ei välttämättä ole nimeä.
Kun painetaan nappia "Security...", järjestelmä kysyy edellä määritellyn hallinnollisen
salasanan. Kun se on annettu, avautuu alempana kuvattu kolmisivuinen
käyttöoikeuksien määrittelylomake.
Sivun alkuun
Käyttäjätunnusten määrittely
Group: Jokainen käyttäjätunnus kuuluu johonkin käyttäjäryhmään (Group), jonka
nimi on enintään 8-merkkinen. Isot ja pienet kirjaimet tulkitaan samoiksi. Silloin,
kun käyttäjältä pyydetään sisäänkirjoittautumista, häneltä kysytään aina ryhmän nimi,
käyttäjätunnus ja salasana. Sama käyttäjätunnus voi kuulua useampaankin eri ryhmään,
kuten oheisessa esimerkissä käyttäjätunnus TIMO.
Käyttäjäryhmän käsite on dBasessa erilainen kuin joissakin muissa järjestelmissä.
Käyttäjäryhmiä on tarpeellista määritellä yhtä useampia vain silloin, jos järjestelmän
taulut jakautuvat sellaisiin ryhmiin, joilla on eri käyttäjät. Kukin suojattu
tietokantataulu on vain yhden ryhmän käyttäjien käytettävissä. Eri henkilöiden
eriasteisia käyttöoikeuksia samoihin tauluhin ei erotella dBASE:ssa käyttäjäryhmiä
muodostaen, vaan käyttäjien tasoluokituksella (level 1-8), joka kuvataan jäljempänä.
Kun määrittelylomakkeen "Users"-sivulla painetaan nappia "New" tai "Modify", saadaan
esille lomake, jolla käyttäjä määritellään:
- User: Käyttäjätunnus. Pienetkin kirjaimet muunnetaan isoiksi.
- Group: Määrittely koskee käyttäjän oikeuksia tässä mainitun käyttäjäryhmän
jäsenenä. Sama käyttäjätunnus voi kuulua moniin eri ryhmiin, jolloin jokaisesta
jäsenyydestä täytetään oma määrittelylomakkeensa.
- Password: Salasana. Isot ja pienet kirjaimet tulkitaan eri merkeiksi.
- Access level: Käyttäjän oikeuksien tasoluokitus hänen käyttäessään
Group-kentässä mainitun ryhmän tauluja. Luokitus ilmaistaan numerolla 1-8.
Mitä pienempi numero,
sitä paremmat käyttöoikeudet. Numeroilla ei ole mitään dBASE:n valmistajan
määrittelemää sisältöä, vaan sovelluksen tekijä määrittelee eri tasojen merkityksen
jäljempänä kuvatulla tavalla taulukohtaisten määrittelyjen yhteydessä — tai
käsitellessään "session"-objekteja ohjelmallisesti.
- Full name: Käyttäjän selväkielinen nimi, jota käytetään lähinnä
erilaisissa tulosteissa, ettei lukijan tarvitse muistaa käyttäjätunnuksia.
Sivun alkuun
Taulukohtaiset suojaukset
Lähtökohtaisesti dBASE-taulut ovat kenen tahansa käytettävissä, joka vain pääsee niihin
käsiksi. Jos taulujen käyttöoikeuksia määritellään seuraavassa kuvattavalla tavalla,
taulut samalla automaattisesti salakirjoitetaan. Ennen salakirjoitusta taulusta
otetaan automaattisesti varmuuskopio, joka pitää siirtää jonnekin muualle hyvään
talteen. Taulujen salaus on kytköksissä em. hallinnolliseen salasanaan, joka on
senkin vuoksi pidettävä ehdottomasti tallessa.
Edellä avatun lomakkeen "Tables"-sivulta valitaan ensin taulu, jonka käyttöoikeudet
halutaan määritellä.
Kun sen jälkeen painetaan "Modify Table ..."-nappia, saadaan esille alla kuvattu
lomake:
Kuvassa näkyvät tasovaatimukset ovat oletusarvoja eli kaikilla tiettyyn
ryhmään kuuluvilla käyttäjillä on kaikki oikeudet, ellei niitä tällä
lomakkeella muuteta.
- Group: Kun tietyn taulun käyttöoikeuksia ensimmäisen kerran määritellään,
pitää valita, mille käyttäjäryhmälle se taulu kuuluu. Vain siihen käyttäjäryhmään
kuuluvilla käyttäjillä on mahdollisuus käyttää kyseistä taulua. (Sama käyttäjä voi
kyllä kuulua useampaan kuin yhteen ryhmään. Toisaalta, ellei taulun käyttöoikeuksia
lainkaan rajoiteta, se on kaikkien ryhmien käytettävissä.)
- Table access levels: Tässä määritellään, mikä luokitus käyttäjällä
pitää vähintään olla saadakseen tehdä tietyn taulukohtaisen toimenpiteen.
Käyttäjien luokitukset tarkoittavat tässä niitä samoja, jotka annetaan aiemmin
kuvatulla käyttäjien määrittelylomakkeella. Kullakin käyttäjätunnuksella on siis
yksi luokitusnumero 1-8. Jos käyttäjä kuuluu useampaan kuin yhteen ryhmään, hänellä
voi olla eri ryhmissä eri luokitus. Tasolla 1 on eniten oikeuksia ja tasolla 8 vähiten.
Jos siis esim. kohtaan "Extend" merkitään 4, kaikilla luokkiin 1-4 kuuluvilla
käyttäjillä on mahdollisuus lisätä tauluun tietueita, mutta luokkiin 5-8 kuuluvilla
käyttäjillä sitä mahdollisuutta ei ole.
Kuten kuvasta näkyy, tasovaatimus määritellään erikseen toimenpiteille
Read, Update, Extend ja Delete. Oletusarvona jokaisessa kohdassa on 8, mikä siis
tarkoittaa, että kaikilla on kaikki oikeudet. Huomattakoon erityisesti, että koko
taulun tyhjentämisoikeus määräytyy tässä määritellyn taulukohtaisen
Update-kohdan eikä alempana määriteltyjen kenttäkohtaisten rajoitusten
perusteella.
- Field privileges: Käyttöoikeuksia voidaan rajoittaa tässä
kenttäkohtaisesti. Vasemmalla olevassa luettelossa näkyy allekkain
taulun kaikkien kenttien nimet. Siitä valitaan yksi kenttä kerrallaan ja
määritellään oikealla olevilla valintanappeilla, mikä oikeus kunkin tason (1-8)
käyttäjillä on siihen kenttään. "Full" = Luku ja muutosoikeus. "Read-Only" = Pelkkä
lukuoikeus. "None" = Ei ole oikeutta edes nähdä kentän sisältöä eikä muuttaa sitä.
Järjestelmä ei ota vastaan epäloogisia määrityksiä eli sellaisia, että
pienemmällä luokitusnumerolla olisi vähemmän oikeuksia kuin isommalla numerolla.
Sivun alkuun
Käyttöoikeuksien tarkastus
Lopuksi määritellään aiemmin käsitellyn lomakkeen kolmannella sivulla,
missä tilanteessa käyttöoikeudet tarkastetaan:
Siinä on kaksi vaihtoehtoa: Joko istunnon alussa tai silloin, kun avataan
suojattu taulu.
Vaihtoehtoisia toimintatapoja:
Sovellus voidaan rakentaa myös siten, että taulukohtaisia oikeuksia ei anneta
varsinaisten käyttäjien käyttäjätunnuksille, vaan "geneerisille" käyttäjille.
Tällöin käyttäjätunnus ja salasana koodataan siihen lomakkeeseen, jolla
suojattuja tauluja käytetään. Sillä tavalla voidaan esimerkiksi estää, ettei
luvallinen käyttäjä käsittele taulua jollakin muulla ohjelmalla.
Käyttöoikeuksia voidaan hallita ohjelmallisesti sessio-objektin ominaisuutena.
Siihen palataan myöhemmin sessio-objektiluokan käsittelyn yhteydessä.
Sivun alkuun
Seuraava sivu: Ohjelmointikielistä