Näkymät ja tiedon suojaus



Samankaltaiset tiedostot
HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja Tietokannat O.Virkki Näkymät

HELIA 1 (14) Outi Virkki Tiedonhallinta

Näkymät ja tiedon suojaus

HELIA 1 (11) Outi Virkki Tiedonhallinta

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Näkymät ja hakemistot

SQL-perusteet, SELECT-, INSERT-, CREATE-lauseet

TIEDONHALLINTA - SYKSY Luento 11. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Kirjasto Relaatiotietokannat Kevät Auvinen Annemari Niemi Anu Passoja Jonna Pulli Jari Tersa Tiina

TIETOKANTOJEN PERUSTEET OSIO 14 MARKKU SUNI

Liitokset - haut useaan tauluun

HELIA 1 (17) Outi Virkki Tietokantasuunnittelu

SQL - STRUCTURED QUERY LANGUAGE

Muita tietokantaobjekteja. Näkymät, synonyymit, indeksointi, valtuudet ja systeemihakemisto

MUITA TIETOKANTAOBJEKTEJA NÄKYMÄT, SYNONYYMIT, INDEKSOINTI, VALTUUDET JA SYSTEEMIHAKEMISTO

HELIA TIKO-05 1 (17) ICT03D Tieto ja tiedon varastointi Räty, Virkki

HELIA 1 (14) Outi Virkki Tiedonhallinta

Insert lauseella on kaksi muotoa: insert into taulu [(sarakenimet)] values (arvot)

TIEDONHALLINTA - SYKSY Luento 10. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Kyselyn yleisrakenne:

Koostefunktiot. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

SQL. ! nykystandardi SQL3 eli SQL'99. ! CREATE TABLE, ALTER TABLE ja DROP TABLE. ! CREATE VIEW ja DROP VIEW. ! CREATE INDEX ja DROP INDEX

TIEDONHALLINTA - SYKSY Luento 8. Saapumisryhmä: Pasi Ranne /9/13 Helsinki Metropolia University of Applied Sciences

HELIA TIKO-05 1 (22) ICT03D Tieto ja tiedon varastointi E.Räty, O.Virkki

Tällä viikolla. Kotitehtävien tarkistus Upotettu SQL Indeksi-harjoitus täydennetään pelifirman tietokantamallia SQL-tehtäviä

Hakukyselyt: SELECT * FROM taulu WHERE sarake1 = Malli Nimi [WHERE sarake1 LIKE M% ] [WHERE BETWEEN ehto1 AND ehto2] [WHERE sarake1 IN/= (alikysely)]

HELIA 1 (15) Outi Virkki Tietokantasuunnittelu

Tietokannat II -kurssin harjoitustyö

Tiedonhallinnan perusteet. H11 Ovien ja kulun valvontajärjestelmän tietokanta

SELECT-lauseen perusmuoto

CSE-A1200 Tietokannat

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto. Opettajien nimet: Opiskelijoiden pääaineet

CSE-A1200 Tietokannat

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

TIEDONHALLINNAN PERUSTEET - SYKSY 2013

Tällä viikolla. Kotitehtävien läpikäynti Aloitetaan Pelifirman tietovaraston suunnittelu Jatketaan SQL-harjoituksia

Opiskeluoikeuksien maaran tiedonkeruu

KOOSTEFUNKTIOT. Viisi standardifunktiota: Esim. montako henkilöä on henkilo-taulussa:

Helsingin yliopisto Tietojenkäsittelytieteen laitos (H.Laine) Tietokantojen perusteet. Liitteenä: Tiivistelmä SQL-syntaksista

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

select tulostietomäärittely from taulukkeet [where valintaehdot] [group by ryhmitystekijät] [having ryhmärajoitteet] [order by järjestysperusta]

Joko tunnet nämän Oracle10g SQL:n piirteet? Kari Aalto Saariston IT

Harjoitustehtävä 1. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. Harjoitustehtävä 2. SQL kysely

Tietokannanhoitaja DBA (Database Administrator) ja tietokannan hallinta

Tietokannat. CREATE TABLE table(col1,col2,... ); Luo uuden taulun. CREATE TABLE opiskelijat(opnumero,etunimi,sukunimi);

Tietokantojen perusteet, syksy 1999 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Helsingin yliopisto, TKTL Tietokantojen perusteet, k 2000 SQL- osa Harri Laine 1. SQL-valintaehto. SQL-valintaehto.

Tietokannat II -kurssin harjoitustyö

TIETOKANTOJEN PERUSTEET MARKKU SUNI

HELIA 1 (13) Outi Virkki Tietokantasuunnittelu

Tiedonhallinnan perusteet. Viikko 1 Jukka Lähetkangas

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

Proseduurit, funktiot ja herättimet - esimerkkeinä Oracle, SQL Server, MySQL ja OCELOT. Jouni Huotari S2008

PROSEDUURIT, FUNKTIOT JA HERÄTTIMET - ESIMERKKEINÄ ORACLE, SQL SERVER, MYSQL JA OCELOT JOUNI HUOTARI K2009

Tietokannan rakenteen suunnittelu

Helsingin yliopisto, tktl DO Tietokantojen perusteet, kevät 2000 SQL- osa Harri Laine 1. SQL-yhteenvetofunktiot. SQL-yhteenvetofunktiot

CSE-A1200 Tietokannat

TIETOKANTOJEN PERUSTEET OSIO 11 MARKKU SUNI

HELIA 1 (15) Outi Virkki Tiedonhallinta

3. Taulujen määrittely ja muuttaminen

3. TAULUJEN MÄÄRITTELY JA MUUTTAMINEN

FROM-lausekkeessa voidaan määritellä useampi kuin yksi taulu, josta tietoja haetaan: Tuloksena on taululistassa lueteltujen taulujen rivien

Helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 SQL:n perusteet. Harri Laine 1. SQL tietokantakieli. SQL tietokantakieli

Esimerkki. pankkien talletus- ja lainatietokanta: Yhdiste, leikkaus, erotus ym. Leikkaus (intersect) Yhdiste (Union) Erotus (except/minus) Leikkaus

Tehtävä 1. Tietojen lisääminen, poistaminen, päivittäminen ja tulostaminen

Yhdiste, leikkaus, erotus ym.

Harjoitustyö. CSE-A1200 Tietokannat! Jasse Lahdenperä! ! Henri Nurmi! !

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2005 SQL-perusteet. Harri Laine 1. SQL tietokantakieli

Virta_Latausraportti - Tarkistukset

Käsitteellinen mallintaminen

Lisää segmenttipuusta

Opettajana Mika Sorsa, HAMK:n ammatillisen opettajakoulutuksen opetusharjoittelija

HELIA TIKO-05 1 (15) ICT03D Tieto ja tiedon varastointi Räty, Virkki

Tietokantojen perusteet, s 1999 SQL- osa Harri Laine 1. SQL -ohjelmistojen markkinaosuuksia SQL. SQL - historiaa. SQL - standardointi

Metropolia ammattikorkeakoulu TU00BS : ICT-teknologiaosaaminen Tuntitehtävät 5 Pasi Ranne

SQL:N PERUSTEET MARKKU SUNI

SQL-kielen perusteet. Tietokantojen perusteet

TIETOKANNAT JOHDANTO

TIEDONHALLINTA - SYKSY Luento 12. Hannu Markkanen /10/12 Helsinki Metropolia University of Applied Sciences

Samanaikaisuuden hallinta. Optiot transaktionaalisissa työnkuluissa

Käyttövaltuushallintaa kehitetään (SAP IDM -projekti), hyödyt virastoille

Optima: kirjoitusalue työkalu Opettajalle ohjeet

D B. Tietokannan hallinta - kurssin tavoite. Kurssilla opitaan periaatteet. Edellytyksenä osallistumiselle on Tietokantojen perusteiden hallinta

HSMT Tietokannoista. Ville Leppänen. HSMT, c Ville Leppänen, IT, Turun yliopisto, 2008 p.1/32

Kirjoita kuhunkin erilliseen vastauspaperiin kurssin nimi, tentin päiväys, oma nimesi, syntymäaikasi ja nimikirjoituksesi.

Kuva 7.2 vastaustaulu harjoitukseen 7.2

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

VINKKI: Katso Kentät Muistioon -painikkeella, mikä on taulukon nimen oikea kirjoitusasu.

määritellä ja muokata tietokantaa ja sen käyttöoikeuksia virittää tietokannan talletusrakenteita hakea tietoa tietokannasta

HELIA 1 (21) Outi Virkki Tietokantasuunnittelu

2. Haet työntekijöiden tiedot etunimen mukaan nousevasti järjestettyinä. (ORDER BY) SELECT * FROM employees ORDER BY firstname ASC;

Ohjelmiston käyttäjätunnukset ja käyttöoikeudet

HELIA SQL-harjoituksia 1(1) atk72d Versiopvm:

Makrojen mystinen maailma lyhyt oppimäärä

HELIA 1 (12) Outi Virkki Tiedonhallinta

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Microsoft SQL Server -tietokannan hallinta. Jouni Huotari

4.3.1 SQL tietokanta SQL:n kirjoitusasu SQL määrittelykielenä... 36

Web-teknologiat. XML-datan kysely Topi Sarkkinen

Tietokantakurssit / TKTL

Transkriptio:

HAAGA-HELIA Heti-09 1 (22) Näkymät ja tiedon suojaus Näkymät... 2 Eri tyyppisiä relaatioita... 2 Taulu - Tallennettu relaatio... 2 Tulosrelaatio - Kyselyn tulos... 2 Näkymä - Virtuaalirelaatio... 2 Näkymien määrittely... 3 Ominaisuuksien uudelleen nimeäminen... 4 Näkymien poisto... 5 Näkymien käsittely... 6 Näkymien päivitettävyys / SQL-92... 7 Hyödyt... 8 Vaarat... 11 Suositus... 12 Käyttöoikeuksista ja tiedon suojauksesta... 13 Käyttäjätunnukset... 14 Tunnuksen luominen... 15 Oikeudet / Valtuudet... 16 Oikeuksien hallinta SQL:ssä... 17 Suojaustarkkuus?... 18 Roolit... 19 Suojausten suunnittelu... 21

HAAGA-HELIA Heti-09 2 (22) Näkymät Eri tyyppisiä relaatioita Taulu - Tallennettu relaatio Nimetty Itsenäinen Fyysisesti olemassa, ts. RDBMS tallentaa taulut ja niiden sisällön johonkin fyysiseen paikkaan levyllä. Tietojen olemassaolo riippuu taulun olemassaolosta Määritellään CREATE TABLE lauseella Tulosrelaatio - Kyselyn tulos Tietyn kyselyn tulos (tietyllä ajanhetkellä) Määritellään SELECT lauseella Näkymä - Virtuaalirelaatio Nimetty Johdettu kyselyn avulla Ei fyysisesti olemassa Tietojen olemassaolo ei riipu näkymän olemassaolosta Näyttää tietosisällön ajantasaisesti Määritellään CREATE VIEW lauseella

HAAGA-HELIA Heti-09 3 (22) Näkymien määrittely CREATE VIEW v_lehtori AS SELECT opettajanro, sukunimi, etunimi, puh FROM Opettaja WHERE nimike = LEHTORI Kaikenlaiset SQL-lauseet kelpaavat: (toimittajakohtaisia rajoituksia voi olla...) Laskutoimitukset ( col1 + col2 ) * 1,22 Funktiot SUM( col1 ) Valintalauseet WHERE col5 > 10 Ryhmitys GROUP BY Liitokset FROM table1 JOIN table2 Joukko-operaatiot UNION / INTERSECT /... Alikyselyt Duplikaattien karsinta DISTINCT Order by määritystä ei voi antaa!

HAAGA-HELIA Heti-09 4 (22) Ominaisuuksien uudelleen nimeäminen Kyselyssä poimitut ominaisuudet voidaan nimetä uudelleen Etenkin johdetut sarakkeet (esim. funktiot) kannattaa nimetä Standardin mukaan nimeäminen tehdään a) määrittelemällä sarakenimien lista (kaikki) suluissa näkymän nimen jälkeen CREATE VIEW v_esim (puhelin) AS SELECT DISTINCT puh FROM henkilo b) antamalla itse kyselyssä sarakkeelle toinen nimi as -lausekkeella CREATE VIEW v_esim AS SELECT DISTINCT puh AS puhelin FROM henkilo Tietokantatoimittajilla on (myös) standardista poikkeavia sarakkeiden uudelleennimeämistapoja

HAAGA-HELIA Heti-09 5 (22) Näkymien poisto DROP VIEW <view_name>; Vain määrittely poistetaan; dataan ei kosketa

HAAGA-HELIA Heti-09 6 (22) Näkymien käsittely Näkymät voivat olla myös uusien kyselyjen (ja näkymien) lähtökohtana aivan kuten taulut SELECT sukunimi, etunimi puh FROM w_lehtori WHERE puh = 300 Näkymät eivät aseta rajoituksia kyselyille Näkymät asettavat rajoituksia päivitettävyydelle (erilaisia eri tietokantatuotteissa)

HAAGA-HELIA Heti-09 7 (22) Näkymien päivitettävyys / SQL-92 1. Kysely kohdistuu vain 1 tauluun 2. Distinct määrettä ei saa käyttää 3. Group by ei saa olla käytössä 4. Where-ehdossa ei saa olla alikyselyä 5. Kyselyssä valittavien sarakkeiden tulee kattaa kaikki ko. relaation not null määritetyt sarakkeet joille ei ole määritelty oletusarvoa Säännöillä pyritään varmistamaan, että päivitys kohdistuu vain ja ainoastaan siihen tietueeseen, mihin on tarkoitettukin Päivitettävyyden ehdot vaihtelevat eri RDBMS:ssä

HAAGA-HELIA Heti-09 8 (22) Hyödyt Käyttäjä(ryhmä)kohtainen näkökulma Eri käyttäjät voivat nähdä saman datan sovitettuna omaan näkökulmaansa Tietoriippumattomuuden lisääminen Mikäli tietokantaan joudutaan tekemään muutoksia, näkymän avulla voidaan käyttäjälle / ohjelmille tarjota entisenkaltainen rajapinta tietoon. Ts. muutokset tietokannan tauluissa eivät välttämättä aseta muutosvaatimuksia sovellusohjelmille / käyttäjien kyselyille

HAAGA-HELIA Heti-09 9 (22) Tietorakenteen yksinkertaistaminen Eri tauluihin kootut tiedot voidaan yhdistää näkymässä ts. purkaa tietokannan monimutkaisuutta tiedon luotettavuuden (ristiriidattomuuden) kärsimättä (keskeinen osassa Data Warehouse tuotteita, esim. Business Objects) Monimutkaisten kyselyjen tallentaminen näkymiksi a) vähentää virhemahdollisuuksia b) parantaa hallittavuutta modulaarisempi rakenne! + SQL:n rajoitusten kiertäminen (tyypillisesti ryhmäfunktioiden yhteydessä) Tietosuojan rakentaminen Näkymien avulla voidaan rajata a) Sarakkeita b) Rivejä (tietueita) Jotka ovat eri käyttäjäryhmien nähtävissä / päivitettävissä (...tähän palataan myöhemmin...)

HAAGA-HELIA Heti-09 10 (22) Esim. 1: Rakenteen yksinkertaistaminen TUOTERYHMÄ (tuoteryhmano, tuoteryhman_nimi) TUOTE (tuoteno, tuotteen_nimi, tuoteryhmano) CREATE VIEW W_TUOTTEET (tuoteno, nimi, ryhma) AS SELECT t.tuoteno,, t.tuotteen_nimi, tr.tuoteryhman_nimi FROM tuote t LEFT JOIN tuoteryhma tr ON t.tuoteryhmano = tr.tuoteryhmano ; Esim. 2: Koodiston avaaminen HENKILO (hetu, nimi, osoite, sukupuoli) CREATE VIEW W_HENKILOT (hetu, nimi, osoite, sukupuoli) AS SELECT hetu,, nimi, osoite, case sp when 'N' then 'nainen' when 'M' then 'mies' else 'muu' end FROM henkilo ;

HAAGA-HELIA Heti-09 11 (22) Vaarat Hallittavuuden katoaminen Näkymien luonti kevytmielisesti jokaiseen tarpeeseen kasvattaa näkymien määrän kontrolloimattomaksi Näkymien sarakkeiden nimeäminen toisistaan ja tietokannan tauluista poikkeavasti voi johtaa sekavuuteen Tehottomuus Kysely saattaa muodostua monesta päällekkäisestä kyselystä, joita RDBMS:n optimoijan voi olla vaikea optimoida Päivitettävyyden rajoitukset Näkymien suunnittelussa otettava huomioon päivitystarpeet ja valitun RDBMS:n tarjoamat mahdollisuudet

HAAGA-HELIA Heti-09 12 (22) Suositus Tavoittele tietoriippumattomuutta! Älä viittaa ohjelmissa koskaan suoraan tauluihin! Käytä välissä näkymää

HAAGA-HELIA Heti-09 13 (22) 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)

HAAGA-HELIA Heti-09 14 (22) 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ä

HAAGA-HELIA Heti-09 15 (22) Tunnuksen luominen SQL-92 / -99 ei määrittele käyttäjän luontilausetta! syntaksi on samantapainen eri järjestelmissä 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

HAAGA-HELIA Heti-09 16 (22) Oikeudet / Valtuudet SQL-standardi Oikeus Taulu Näkymä Sarake Select X X X Insert X X X Update X X X Delete 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

HAAGA-HELIA Heti-09 17 (22) 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;

HAAGA-HELIA Heti-09 18 (22) Suojaustarkkuus? Tyypillisesti oikeudet myönnetään taulukohtaisesti Usein on tarvetta rajata käyttöoikeuksia 1. rivitasolla 2. saraketasolla Kaikki tiedonhallintaohjelmistot eivät tue saraketason suojausta Mikään tiedonhallintajärjestelmä ei (suoraan) tue rivitason suojausta Näkymät avuksi ts. oikeus annetaan taulun sijasta näkymään Näkymissä voidaan tarvittaessa rajata pois sekä rivejä että sarakkeita

HAAGA-HELIA Heti-09 19 (22) 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

HAAGA-HELIA Heti-09 20 (22) 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;

HAAGA-HELIA Heti-09 21 (22) 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 Asiakas S, I, U S, I, U (omat) Tilaus S, I, U S, I (omat) Tilausrivi S, I, U, D S, I (omat) Kirja S, I, U, D S Kirjan tekija S, I, U, D S S = Select I = Insert U = Update D = Delete

HAAGA-HELIA Heti-09 22 (22) Tehtävä: Suunnittele roolit ja käyttöoikeudet oppilashallinnon tietokantaan OPE OPPILAS KURSSI KURSSI- TOTEUT. SUORI- TUS