HELIA 1 (11) Luento Käyttöoikeuksista ja tiedon suojauksesta... 2 Käyttäjätunnukset... 3 Tunnuksen luominen... 4 Oikeudet / Valtuudet... 5 Oikeuksien hallinta SQL:ssa... 6 Suojaustarkkuus?... 7 Roolit... 8 Suojausten suunnittelu... 10
HELIA 2 (11) Käyttöoikeuksista ja tiedon suojauksesta Yhteiskäyttöisissä tietokannoissa on huolehdittava tiedon suojauksesta (tietojen luvaton luku, muuttaminen, tuhoaminen, ) Myös suojaukset on suunniteltava Muista laki ja hyvät tavat Pääsyä tietokannan tietoihin kontrolloidaan 1. Tunnistamalla käyttäjät (identifiointi / autentikointi) 2. Antamalla käyttäjille käyttöoikeuksia (auktorisointi)
HELIA 3 (11) Käyttäjätunnukset Ä SQL-92 / -99 ei sano mitään käyttäjistä (users) se tuntee vain käsitteen <authorizationid> AuthorizationID 1. Käyttäjä (User) 2. Rooli (Role) + PUBLIC käsittää kaikki käyttäjät Ä Käyttäjätunnusten luonti ja ylläpito yleensä DBA:n (tietokannan hoitajan) tehtävä
HELIA 4 (11) Tunnuksen luominen SQL-92 / -99 ei määrittele käyttäjän luontilausetta! Solid syntaksi Tunnuksen luonti: CREATE USER.<user-name> IDENTIFIED BY <password>.. CREATE USER mina IDENTIFIED BY sina; Tunnuksen muuttaminen: ALTER USER.<user-name> IDENTIFIED BY <password>.. ALTER USER mina IDENTIFIED BY han; Tunnuksen poisto: DROP USER.<user-name> DROP USER mina
HELIA 5 (11) Oikeudet / Valtuudet SQL-standardi Oikeus Taulu Näkymä Sarake Select X X X Insert X X X Update X X X Delete X X - References X - x Ä Oikeuksissa ja niiden toteutuksissa tiedonhallintajärjestelmäkohtaisia eroja! Ä Objektien omistajalla on aina kaikki oikeudet omistamiinsa objekteihin Å Muille käyttäjille oikeudet annettava erikseen Ä PUBLIC käyttäjäryhmälle annetut oikeudet periytyvät kaikille käyttäjille
HELIA 6 (11) Oikeuksien hallinta SQL:ssä Oikeuksien myöntö: GRANT <privilege-list> ON <object-name> TO <authorizationid-list> [WITH GRANT OPTION] GRANT SELECT, UPDATE ON tilaus TO vieno WITH GRANT OPTION; Oikeuksien poisto REVOKE [GRANT OPTION FOR] < privilege-list> ON <object-name> FROM < authorizationid -list> [CASCADE RESTRICT ] REVOKE SELECT, UPDATE ON tilaus FROM vieno;
HELIA 7 (11) Suojaustarkkuus? Tyypillisesti oikeudet myönnetään taulukohtaisesti Usein on tarvetta rajata käyttöoikeuksia 1. rivitasolla 2. kenttätasolla Useat tiedonhallintaohjelmistot eivät tue kenttätason suojausta Näkymät avuksi
HELIA 8 (11) Roolit SQL-92:ssa oikeudet voidaan antaa vain käyttäjä(tunnus)kohtaisesti SQL-99:ssä sekä monissa tiedonhallintajärjestelmissä oikeudet voidaan antaa ryhmä-/roolikohtaisesti Helpottaa suuresti käyttöoikeuksien ylläpitoa Idea: Käyttäjä 1 Taulu 1 Käyttäjä 2 Taulu 2 Käyttäjä n. Taulu n Käyttäjä 1 Taulu 1 Käyttäjä 2 Rooli 1 Taulu 2 Käyttäjä n. Taulu n
HELIA 9 (11) Roolin myöntö: CREATE ROLE <role_name> CREATE ROLE bb_myyja; Roolin poisto: DROP ROLE <role_name> DROP ROLE bb_myyja; Roolin käyttö: Å Rooleille myönnetään oikeudet kuten käyttäjille + Käyttäjille (tai rooleille) myönnetään oikeudet (taulujen sijasta) rooleihin GRANT bb_myyja TO vieno;
HELIA 10 (11) Suojausten suunnittelu Ä Lähtökohtana käyttäjien työtehtävät Tieto käyttäjä matriisit / -taulukot mikä käyttäjäryhmä tarvitsee mitäkin tietoa esim. Tieto käyttäjä taulukko: Bachelor s Books BB-myyjä Asiakas Kaikki Asiakas S, I, U S, I, U (omat) I Asiakkaan puh S, I, U, D S, I, U, D (omat) Tilaus S, I, U S, I (omat) Tilausrivi S, I, U, D S, I (omat) Kirja S, I, U, D S S Kirjan tekija S, I, U, D S S - I I S = Select I = Insert U = Update D = Delete
HELIA 11 (11) Tehtävä: Suunnittele roolit ja käyttöoikeudet oppilashallinnon tietokantaan OPE OPPILAS KURSSI KURSSI- TOTEUT. SUORI- TUS