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

Relevanta dokument
Databaser design och programmering Säkerhetsproblem Databashanteraren SQL-injektion

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

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

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

ÖVERVAKNING AV SQL SERVER

Föreläsning 6 Databaser och säkerhet

Stored procedure i ASP.NET

Relationsdatabashanteringssystem RDBHS

Transaktionshantering med samtidighetskontroll i databaser

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

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

Tentamen i Databasteknik

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

Årsrutin. Visma Control

Alternativ till låsning. Optimistik approach TimeStamp

Tentamen i. Databasteknik

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

KAP 16 BACKUP, RESTORE OCH RECOVERY

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

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

Tentamen DATABASTEKNIK - 1DL116

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.

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

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

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

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

Projektuppgift - Banken

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

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.

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

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

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

BOOK-IT 6.0. Backup Solaris

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

LATHUND COSMIC elearning

Innehåll Programability Del 2

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

Mobil App - Användar Guide

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

LATHUND COSMIC elearning

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

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

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

SURFTOWNS SÄKERHETSMILJÖ. Databehandlingsavtal - Bilaga 1

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

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

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

DELA DIN MAC MED FLERA ANVÄNDARE

1 Installationsinstruktioner

DATALAGRING. Ämnets syfte

Prestanda, skalbarhet och tillgänglighet Torbjörn Stavenek

Databaser - Design och programmering

Rebus Backup för SQL-databaser

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

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.

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

Skolorna visar brister i att hantera personuppgifter

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

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

LATHUND COSMIC elearning

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

SimuWorld Internetportal

Lösningar till tentamen i EDAF75

Välkommen till ett riktigt bra sparande!

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

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

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

Mobilus får inte användas under tiden uppdateringen genomförs.

Databasteknik för D1, SDU1 m fl

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

Riktlinjer för informationssäkerhet

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

Databasteknik NADA, KTH & SU

Arbetsgivardeklaration via Öppet API

Kunskapsbank ICARUS DB

PIA-kontering i Tillverkning

Användarhandledning för The Secure Channel

Användarhandledning för The Secure Channel

Riktlinjer för handhavande av enskilds ekonomi inom socialförvaltningens verksamhetsområde.

TOWA AX-100. Kassaregister. Användarhandledning

Hantera organisationens SDL-användare. Anvisningar för SDL-huvudanvändare

PROGRAMUTVECKLINGSPROJEKT

Synkronisering. Ordning och reda

Modbus Seriell Kommunikation

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Årsrutin. Visma Control

Två sätt att uppgradera din ipad

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

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

Internetsäkerhet. banktjänster. September 2007

732G16: Databaser - Design och programmering

Transkript:

Databaser design och programmering 1 Säkerhetsproblem 2 Transaktionshantering och säkerhet säkerhetsproblem fleranvändarproblem transaktioner låsning 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? 3 4 Databashanteraren SQL-injektion Har rutiner för många av dessa problem inloggning för åtkomstkontroll grant och revoke grant select on employee to nnnmm123 vyer Not om statistiska databaser och åtkomst Källa: xkcd.com/327/ 5 6 Exempel Transaktion 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 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 Start och slut på transaktion lagra interaktioner i loggfil 1.start transaction 5.Y=read(Y) 2.X= read (X) 6.Y = Y + uttag 3.X=X - uttag 7.write (Y) 4.write (X) 8.commit transaction Commit (klart, korrekt) 7 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 8 Logg och Rollback Å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 9 Problem med parallella transaktioner (isolering) Varor Artikelnr Namn i lager Pris 2398475 Rosor, 10-p 3 79,90 9834576 Tulpan, 10-p 15 49,90 Transaktioner Artikelnr Antal Dag PerDag 2398475 3 120506 9834576 1 120507 2398475 2 120507 10 11 12 Bortkastad uppdatering Inläsning av ogiltigt värde (smutsig läsning) ROLLBACK T1

Felaktig summering: Tid: 1 2 3 4 5 6 7 8 9 10 11 T1: Read(x) x=x-m Write(x) Read(y) y=y+m Write(y) T2: Sum=0 Read(x) Sum=Sum+x Read(y) Sum=Sum+y 13 : 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) 14 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. 15 Summering: 1.sum=0 2.lock(x) 3.read (x) 4.sum=sum+1 5.unlock(x) 6.lock(y) 7.read(y) Exempel lås 8.sum=sum+y 9.unlock(y) OBS: mindre listig lösning 16 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. 17 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. 18

Men... 19 Tvåfaslåsning 20 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 21 Kaskad-rollback 22 Fel trots commit vid parallella transaktioner Även commit-ade transaktioner kan behöva rullas tillbaka. Tvåfaslåsning inte tillräcklig Förbättrad tvåfaslåsning 23 Men... 24 Rigorös tvåfaslåsning Strikt tvåfaslåsning

Dödläge (deadlock): 25 Deadlock, strategier 26 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. 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 (inloggning, back-up) Korrekthet - Transaktioner: odelbara, konsistensbevarande, isolerade och bestående. 27 Hur? Loggfil, (commit, rollback) Låsningssystem (tvåfaslåsning, deadlock)