Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion



Relevanta dokument
Databaser - Design och programmering. Säkerhetsproblem. SQL-injektion. Databashanteraren. Transaktion. Exempel. Transaktionshantering och säkerhet

Databaser design och programmering. Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning

Karlstads Universitet, Datavetenskap 1

Föreläsning 7: Transaktioner

Transaktioner och samtidighet

Databasföreläsning. Del 2 lagrade procedurer, vyer och transaktioner

ÖVERVAKNING AV SQL SERVER

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Föreläsning 6 Databaser och säkerhet

Stored procedure i ASP.NET

Relationsdatabashanteringssystem RDBHS

Tentamen ISGB01 (delkurs i ISGB24) Databasdesign 7,5 Poäng

TENTAMEN TDDB77 Databaser och Bioinformatik 12 juni 2007, kl 14-18

Transaktioner. 1. Transaktioner 2. Samtidighet ( concurrency ) och lås. 3. Deadlock. Kap. 17. Informatik B: Databashantering med SQL Server

Transaktionshantering med samtidighetskontroll i databaser

Alternativ till låsning. Optimistik approach TimeStamp

Databaser & databasdesign. Personuppgiftslagen, säkerhet och transaktioner.

KAP 16 BACKUP, RESTORE OCH RECOVERY

Tentamen i Databasteknik

Skapa bokslutstransaktioner (kortperiodiska och årsbokslut)

Backup Premium Snabbguide

BOOK-IT 6.0. Backup Solaris

KONTO. KUND Datum TRANS AKTION ISA UTTAG

Särskild information om personalliggare Fröbergs RFID / Fingerprint (TM-600 Serien)

Synkronisering. Föreläsning 8

TENTAMEN TDDB77 Databaser och Bioinformatik 15 mars 2002, kl 14-18

Databaser - Design och programmering. Kursöversikt. Exempel: telefonbok. Varför databaser?

OBS! Figuren visar inte alla aspekter och objekt som är inblandade i säkerhetssystemet.

Memeo Instant Backup Snabbguide. Steg 1: Skapa ett gratis Memeo-konto. Steg 2: Anslut din lagringsenhet till datorn

Tentamen DATABASTEKNIK - 1DL116

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

! Teori och praktik. ! Ändringar från förra året. ! Examination (tenta, projekt) LiU. ! Varför ni? ! Varför överhuvudtaget? LiU

Prestanda, skalbarhet och tillgänglighet Torbjörn Stavenek

Design vid utveckling av inbyggda system

PROGRAMUTVECKLINGSPROJEKT

Skapa mapp. * Gör så här: Det finns många sätt att skapa mappar, men det enklaste sättet brukar vara följande.

Design av inbyggda system

DATALAGRING. Ämnets syfte

An English version of the questions is found at the back of each page.

Kunskapsbank ICARUS DB

SQL Server bygger på ett antal Windows tjänster (services), vilket är prioriterade program som körs i bakgrunden under OS kontroll.

Inledande frågor 1. Hur stor kunskap har du inom säkerhetskopiering? Har stor kunskap Kan lite Kan lite

Samtidighetskontroll i applikationer utvecklade med ASP.NET Web Forms och traditionell ADO.NET

Listan på egna rapporter inkluderar rapporter från TIDPLAN.MDB

Hur patchar man Entré?

Nyheter i Norstedts Tidbok Mattias Claesson Produktchef

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

Hogia Administration AB bedriver kontinuerlig utveckling av programmen och reserverar sig för avvikelse mellan program och handbok.

Projektuppgift - Banken

Instruktion Programmeringsapp och gränssnitt

Bruksanvisning för Mac

ABT Tel: Fax: Org nr CR Fastighetsteknik AB Östra Trädal Ytterby Sweden

Design av inbyggda system

LATHUND COSMIC elearning

Databaser - Design och programmering

Gallrings-/bevarandetider för loggar i landstingets IT-system

Uppgift 1. (a) Ange tre orsaker hur felaktigheter i en databas kan uppsta. Till varje av dem, ange en lamplig metod som anvands som atgard mot dessa.

Fillagringsplatser. Fillagringsplatser (information om fillagringsplatserna du har att tillgå på Konstfack) Inledning... 12

Tentamen ISGB01, ISGB24. Databasdesign 7,5 Poäng

Användarhandledning för The Secure Channel

LATHUND COSMIC elearning

Tentamen. i Databasteknik. lördagen den 13 mars Tillåtna hjälpmedel: Allt upptänkligt material

Förenklad användarmanual för DAISY-användning. Olympus DM-5

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

TENTAMEN TDDB77 Databaser och Bioinformatik 19 april 2002, kl 14-18

Inlämningsuppgifter, EDAF30, 2015

Användarhandledning för The Secure Channel

Användarhandledning Plancenter Klient version 2011

PIA-kontering i Tillverkning

SPELREGLER FÖR MATTCURLING

TENTAMEN TDDB77 Databaser och Bioinformatik 24 april 2004, kl 14-18

Innehåll. 9. Hur vet jag vilken storlek på licensen jag har?... 16

Installationsmanual Multiläsare 2000 användare 12V DC Revidering 1.00

Innehåll Programability Del 2

FleXi Voice. Talad hänvisning med Röstbrevlåda. - en kort guide -

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Kassaavstämning och inställningar för betalning i Pyramid

Databasteknik NADA, KTH & SU

Databaser - Design och programmering. Minnesteknik. Minnesteknik, forts. Hårddisk. Primärminne (kretsteknik) Fysisk design av databasen

För att du som användare skall kunna leva upp till de säkerhetskrav som ställs på dig måste du känna till. Lärare och Elever har olika krav: Lärare

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Användarhandbok e-wärna Ställföreträdare

Kassarutiner Mat&Kalas

Näsgård Pocket är i princip en miniversion av Näsgård Management och kan köra på en handdator och telefon med Windows operativsystem.

Lösningar till tentamen i EDAF75

Inventering/Rullande. iscala? Hur ställer man in iscala för att använda sig av rullande inventering? Lennart Andersson

Rebus Backup för SQL-databaser

Tentamen, Distribuerade System/Programvaruarkitektur

Manual. OpenSolution Mobile System Fristående kassa. OpenSolution Nordic AB. Växel: Jour:

EXFLOW DYNAMICS NAV ELEKTRONISK FAKTURAHANTERING

SQL, nästlade delfrågor Nästlade delfrågor. En nästlda delfråga är ett select-from-where uttryck inom where-klausulen i en annan fråga.

SURFTOWNS SÄKERHETSMILJÖ. Databehandlingsavtal - Bilaga 1

Acer erecovery Management

ÅRSSKIFTE Pyramid Business Studio

Labb LIVE. Exempelkod från föreläsningen. Plushögskolan Frågeutveckling inom MSSQL - SU14

Sharpdesk V3.5. Installationsguide: produktnyckelversion. Version 1.0

Transkript:

Databaser design och programmering Transaktionshantering och säkerhet säkerhetsproblem transaktioner fleranvändarproblem låsning Säkerhetsproblem Informationen i databasen måste vara pålitlig (inte kunna ändras eller försvinna av misstag) får inte spridas av misstag måste vara åtkomlig när den behövs Men: om datorn hänger sig, hårddisken kraschar, obehöriga försöker ta sig in... eller någon är bara nyfiken? Databashanteraren SQL-injektion Har rutiner för många av dessa problem inloggning för åtkomstkontroll grant och revoke vyer Not om statistiska databaser Källa: xkcd.com/327/

Exempel Transaktion Du ska betala en räkning genom att överföra pengar från ett konto till ett annat. Banktjänstemannen tar uttagnings- och insättningsavierna. Han knappar in uttagningen och insättningen på sin terminal, sedan hänger sig systemet. insättningen registrerades inte Definition: Logiskt sammanhängande serie interaktioner med databasen, som är: Atomära (Atomic) : odelbara Konsistenta (Consistent): integritetsbevarande Isolerade (Isolated): oberoende av annat som görs i db. Bestående (Durable): inte kunna försvinna. Allt eller inget Rollback (återställning) Commit (klart, korrekt) loggfil start transaction Y=read(Y) X= read (X) Y = Y + uttag X=X - uttag write (Y) write (X) commit transaction Loggfil start (t234) read (t234, X) write (t234, X, 360, 260) read (t234, Y) write (t234, Y, 120, 220) commit (t234) Vid hängning eller annat problem: rollback

Rollback Problem med parallella transaktioner (isolering) Återställa databasen i konsistent skick Backup om hårddiskproblem Transaktioner som ej slutförts rivs upp Transaktioner som slutförts repeteras Hur långt tillbaka som helst? Checkpoint Skriv till loggfilen först, sedan till databasen Parallella transaktioner Bortkastad uppdatering Parallella transaktioner Inläsning av ogiltigt värde

Parallella transaktioner Felaktig summering Parallella transaktioner: lås Problem med Isoleringen och Konsistensen Lösning: reservera åtkomsträttigheten för en artikel till en transaktion: lås Lock (X), Unlock (X) (Alternativ: t.ex. serialiserbarhet och tidsstämpling, studeras ej) Låsning - binära lås Två tillstånd: Låst, Olåst. Protokoll för binära lås: 1.Lock(X) måste utföras innan någon Read(X) eller Write(X)-operation utförs. 2.Unlock(X) måste utföras när läsning och skrivning av X är klar. 3.man får inte göra Lock(X) om man redan har låst X. 4.man får inte göra Unlock(X) om man inte har låst X för tillfället. Läs- och skrivlås Parallell läsning fungerar bra: skilj på läsning och skrivning. ReadLock (X) WriteLock (X) Unlock(X) ReadLock fås om inget WriteLock är satt. WriteLock fås om inget lås alls är satt.

Läs- och skrivlås: protokoll: 1.Innan någon Read(X)-operation utförs måste ReadLock(X) eller WriteLock(X) utföras. 2.Innan någon Write(X)-operation utförs måste WriteLock(X) utföras. 3.Unlock(X) måste utföras när läsning och skrivning av X är klar. 4.man får inte göra ReadLock(X) om man redan har låst X. 5.man får inte göra WriteLock(X) om man redan har låst X för skrivning. 6.man får inte göra Unlock(X) om man inte har låst X för tillfället. Men... Tvåfaslåsning Inte släppa något lås förrän allt som behövs för transaktionen har låsts Men: om problem uppstår så någon transaktion får avbrytas? Exempel

Kaskad-rollback Fel trots commit vid parallella transaktioner Även commit-ade transaktioner kan behöva rullas tillbaka. Tvåfaslåsning inte tillräcklig Varianter på tvåfaslåsning Rigorös tvåfaslåsning Strikt tvåfaslåsning Men... Dödläge (deadlock): Definition: Korsvis (eller cirkulär, om flera transaktioner är inblandade) låsning av objekt i databasen, sådan att ingen kan släppa en artikel förrän den fått låsa en artikel som är låst av någon som väntar på den artikel man redan låst.

Deadlock, strategier Förebyggande: 1. Konservativ tvåfaslåsning 2. Dataobjekten låses alltid i en viss ordning Upptäckande 1. Time-out 2. undersöka wait-for-grafen Transaktioner och säkerhet - summering Säkerhet - korrekthet Transaktioner: odelbara, konsistensbevarande, isolerade och bestående. Hur? Loggfil (commit, rollback) Låsningssystem (tvåfaslåsning, deadlock)