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

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

Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

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

Föreläsning 7: Transaktioner

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

Transaktioner och samtidighet

Transaktionshantering med samtidighetskontroll i databaser

Karlstads Universitet, Datavetenskap 1

ÖVERVAKNING AV SQL SERVER

Relationsdatabashanteringssystem RDBHS

Föreläsning 6 Databaser och säkerhet

Stored procedure i ASP.NET

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

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

KAP 16 BACKUP, RESTORE OCH RECOVERY

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

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

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

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

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

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

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

Lösningar till tentamen i EDAF75

Databaser - Design och programmering

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

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

Alternativ till låsning. Optimistik approach TimeStamp

SURFTOWNS SÄKERHETSMILJÖ. Databehandlingsavtal - Bilaga 1

Design vid utveckling av inbyggda system

Mobil App - Användar Guide

Skydd av personuppgifter för användare som registrerats av EU-kommissionens identitetshanteringstjänst (Identity Management Service)

Hogia Small Office Kassa

Tentamen i Databasteknik

732G16: Databaser - Design och programmering

Design av inbyggda system

Tentamen DATABASTEKNIK - 1DL116

Välkommen till Payson! Det här är en guide som beskriver hur du använder ditt PaysonKonto på bästa sätt. PAYSON AB PAYSON.SE E-POST

Integritetspolicy. Vårt dataskyddsarbete

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

Årsrutin. Visma Control

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

Välkommen till Payson! Det här är en guide som beskriver hur du använder ditt PaysonKonto på bästa sätt. PAYSON AB PAYSON.SE E-POST

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

Innehåll Programability Del 2

Följ dessa steg för att försäkra dig om att ditt konto aktiveras på rätt sätt. Aktivera PayPal i Jetshops gränssnitt

Vad är lektionssaldo?

Informationssäkerhet. Varför jobbar vi med informationssäkerhet? Vad är informationssäkerhet? Presentation

PAYPAL / JETSHOP. Aktiveringsinstruktioner för PayPal-kunder -Så här aktiverar du PayPal i din webbshop

SAMSUNG. Bruksanvisning ER 290

Synkronisering. Ordning och reda

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.

BOOK-IT 6.0. Backup Solaris

Tentamen i Databasteknik

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

1. SQL DML (Data Manipulation Language) 2. Lägga till data. 4. Uppdatera data 5. Aktivera default value 6. Hantera datum 7.

Design av inbyggda system

Säker roll- och behörighetsidentifikation. Ulf Palmgren, SKL Webbseminarium

Följ dessa steg för att försäkra dig om att ditt konto aktiveras på rätt sätt.

Databasteknik för D1, SDU1 m fl

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

Autogirobetalning. Välj själv vilket sätt som passar dig att betala

Enkla steg-för-steg guider. Användarguide. Nordeas Mobilbank

Storegate Pro Backup. Innehåll

Structured query language (SQL)

Riktlinjer för informationssäkerhet

Projektuppgift - Banken

Prestanda, skalbarhet och tillgänglighet Torbjörn Stavenek

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.

ÅRSSKIFTE Pyramid Business Studio

Lösning av tvister, krav och chargebacks. Ibland kan något gå fel med en beställning. I så fall hjälper vi dig.

1. Kvalitetsbegreppet 2. Kommunikation 4. Olika typer av datalagring. 5. Databas 6. DBMS 7. Molntjänster 8. Tabeller. 10. SQL 11.

Vad är en databas? Exempel på databaser: Databas = Organiserad samling och lagring av information.

729G28 Webprogrammering och databaser. Föreläsning 1: Diverse praktiskt om kursen Webprogrammering Databaser, terminologi

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

Rebus Backup för SQL-databaser

Innehåll Security. Chapter 4 och 7 Beginning SQL Server 2008 for Developers

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Innehåll Security. Chapter 4 och 7 Beginning SQL Server 2008 for Developers

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

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

Backup Premium Snabbguide

DELA DIN MAC MED FLERA ANVÄNDARE

INFORMATION FÖR RIKSBANKENS BEGRÄNSADE PENNINGPOLITISKA MOTPARTER

TRÄFF 1 VISA KÄRLEK. I ABC träffas föräldrar fyra gånger och pratar om fyra olika teman.

Dagens föreläsning Programmering i Lisp. - Bindning av variabler (avs 14.6) fria variabler statisk/lexikalisk och dynamisk bindning

DATALAGRING. Ämnets syfte

Informationssäkerhet och medicintekniska produkter eller Information security with respect to safety considerations

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

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

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

Informationssäkerhet Informationssäkerhet. Medicinteknisk säkerhetskurs

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

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.

BOOK-IT OCH GDPR Magdalena Olofsson

Föreläsning 15: Parallella subrutiner. Parallellitet. Varför parallella underprogram?

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

Memo vid årsskifte. Gäller Pyramid Business Studio från version 3.39A (25 november 2014)

Transkript:

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

2 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 klantig?

3 Databashanteraren Har rutiner för många av dessa problem Inloggning för åtkomstkontroll Säkerhetsnivåer SQL-kommandon: grant och revoke grant select on employee to nnnmm123 vyer eller begränsning av kommandon Not om statistiska databaser och åtkomst

4 SQL-injektion Källa: xkcd.com/327/

5 Korrekthet: Exempel Du ska betala en räkning genom att överföra pengar från ett konto till ett annat. Begär överföring från eget konto till mottagaren. Tryck bekräfta beloppet dras från det ena kontot sedan hänger sig systemet. insättningen registrerades inte!

6 Transaktion 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.

7 Atomärt: Allt eller inget Start och slut på transaktion lagra interaktioner i loggfil Pseudokod överföring: start transaction Läs(X) (konto 1) X = X - uttag Skriv(X) (konto 1) Läs(Y) (konto 2) Y = Y + uttag Skriv(Y) (konto 2) commit transaction

8 Spara i Loggfil start transaction Läs(X) (konto 1) X = X - uttag Skriv(X) (konto 1) Läs(Y) (konto 2) Y = Y + uttag Skriv(Y) (konto 2) commit transaction Logg start (t234) read (t234, X) write (t234, X, 360, 260) read (t234, Y) write (t234, Y, 120, 220) commit (t234)

9 Rollback Om transaktionen avbryts innan commit Återställ de tidigare värdena! Loggfilen start (t234) read (t234, X) write (t234, X, 360, 260) read (t234, Y)

10 Återställning Efter krasch är läget odefinierat. Måste säkra databasen! Hämta från backup om hårddiskproblem Transaktioner som ej slutförts rivs upp Transaktioner som slutförts efter senaste backup repeteras Hur långt tillbaka som helst? Checkpoint Skriv till loggfilen först, sedan till databasen!

11 ACID A atomär start/commit/rollback, loggfil C konsistent - loggfil D bestående - backup I?

12 Problem med parallella transaktioner Varor Artikelnr Namn i lager Pris 2398475 Rosor, 10-p 3 79,9 9834576 Tulpan, 10-p 15 49,9 Transaktioner per dag Artikelnr Antal Dag 2398475 3 120506 9834576 1 120507 2398475 2 120507

13 Parallella transaktioner Försäljning: start transaction Läs(X) (varan ros) X = X - 1 Skriv(X) (varan ros) Läs(Y)(dagens trans ros) Y = Y + 1 Skriv(Y)(dagens trans r) commit transaction Lagerhantering: Läs(X) (varan ros) X = X + levererat antal Skriv(X) (varan ros)

Tid 1 2 3 4 5 6 7 8 9 10 11 12 13 Försäljning: start transaction Läs(X) X = X - 1 Skriv(X) Läs(Y) Y = Y + 1 Skriv(Y) commit transaction Lagerhantering: Start transaction Läs(X) X = X + levererat Skriv(X) commit transaction Bortkastad uppdatering 14

Tid 1 2 3 4 5 6 7 8 9 10 11 12 13 Försäljning: start transaction Läs(X) X = X - 1 Skriv(X) ROLLBACK Läs(Y) Y = Y + 1 Skriv(Y) Lagerhantering: 15 Start transaction Läs(X) X = X + levererat Skriv(X) commit transaction Smutsig läsning

16 Tid: 1 2 3 4 5 6 7 8 9 10 11 Överföring: Läs(x)(konto 1) x=x-m Skriv(x) (konto 1) Läs(y)(konto 2) y=y+m Skriv(y)(konto 2) Summering: Sum=0 Läs(x)(konto 1) Sum=Sum+x Felaktig summering Läs(y)(konto 2) Sum=Sum+y

17 Parallella transaktioner: lås Problem med Isoleringen och Konsistensen Lösning: reservera åtkomsträttigheten för en artikel till en transaktion: lås Lås (X), LåsUpp (X) Vad X är avgörs av låsets granularitet (tabell/rad/cell) (Alternativ: t.ex. serialiserbarhet och tidsstämpling, studeras ej)

18 Låsning - binära lås Två tillstånd: Låst, Olåst. Protokoll för binära lås (måste följas!): 1. Lås(X) måste utföras innan någon Läs(X) eller Skriv(X)-operation utförs. 2. LåsUpp(X) måste utföras när läsning och skrivning av X är klar. 3. man får inte göra Lås(X) om man redan har låst X. 4. man får inte göra LåsUpp(X) om man inte har låst X för tillfället.

19 Exempel lås Summering: Sum=0 Läs(X)(konto 1) Sum=Sum+X Läs(Y) (konto 2) Sum=Sum+Y

20 Exempel lås Summering: Sum=0 Lås(X) Läs(X)(konto 1) LåsUpp(X) Sum=Sum+X Lås(Y) Läs(Y) (konto 2) LåsUpp(y) Sum=Sum+Y

21 Läs- och skrivlås Parallell läsning fungerar bra: skilj på läsning och skrivning. LäsLås(X) SkrivLås (X) LåsUpp(X) LäsLås går bara igenom om inget SkrivLås är satt. SkrivLås går bara igenom om inget lås alls är satt.

22 Läs- och skrivlås: protokoll: 1. Innan någon Läs(X)-operation utförs måste LäsLås(X) eller SkrivLås(X) utföras. 2. Innan någon Skriv(X)-operation utförs måste SkrivLås(X) utföras. 3. LåsUpp(X) måste utföras när läsning och skrivning av X är klar. 4. man får inte göra LäsLås(X) om man redan har låst X. 5. man får inte göra SkrivLås(X) om man redan har låst X för skrivning. 6. man får inte göra LåsUpp(X) om man inte har låst X för tillfället.

Tid 1 2 3 4 5 6 7 8 9 10 11 Överför SkLås(X) Läs(X) x=x-m Skriv(x) LåsUpp(X Summer Sum=0 LäLås(X) Läs(X) Sum=Sum+x LåsUpp(X Tid 12 13 14 15 16 17 18 19 20 21 22 Överför SkLås(Y) Läs Y y=y+m Skriv(y) LåsUpp(Y Summer LäLås(Y) Läs(y) Sum=Sum+y LåsUpp(y Men... 23 Felaktig summering

24 Tvåfaslåsning Protokoll som tidigare plus: 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?

Men 25 Tid 1 2 3 4 5 6 7 8 9 10 11 Försäljn Start t Lås(X) Läs(X) x=x-1 Skriv(x) Lås(Y) LåsUpp(X Läs Y y=y+1 Skriv(y) LåsUpp(Y Lagerh Tid 12 13 14 15 16 17 18 19 20 21 22 Försäljn ROLLBACK Lagerh Start t Lås(X) Läs(X) x=x+lev Skriv(x) LåsUpp(X Commit Read uncommitted

26 Kaskad-rollback Fel trots commit vid parallella transaktioner! Även commit-ade transaktioner kan behöva rullas tillbaka. Tvåfaslåsning inte tillräcklig!

27 Förbättrad tvåfaslåsning Rigorös tvåfaslåsning Släpp inte något lås förrän hela transaktionen är committad! Strikt tvåfaslåsning Läslås kan släppas i upplåsningsfasen men skrivlås släpps inte förrän hela transaktionen är committad Nu är våra transaktioner ACID!

28 Men... Tid: 1 2 3 4 5 6... Ex 1: SkrivLås(X) SkrivLås(Y) VÄNTAR! LåsUpp(X) LåsUpp(y) Deadlock! Ex 2: SkrivLås(Y) SkrivLås(X) VÄNTAR! LåsUpp(Y) LåsUpp(X)

29 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.

30 Deadlock, strategier Förebyggande: 1. Konservativ tvåfaslåsning (lås allt på en gång) 2. Dataobjekten låses alltid i en viss ordning Upptäckande 1. Time-out 2. undersöka wait-for-grafen

31 Transaktioner och säkerhet - summering Säkerhet (inloggning, rättigheter, back-up) ACID: Transaktioner är odelbara, konsistensbevarande, isolerade och bestående. Loggning commit, återställning rollback, kaskad-rollback Låsningssystem: Lås, Läs/Skrivlås Protokoll: tvåfaslåsning - strikt/konservativ deadlock

Frågor? www.liu.se