Databaseadministrasjon

Like dokumenter
Spørringer mot flere tabeller

Hva har vi gjort? SQL og Databasedesign

Sikkerhet og tilgangskontroll i RDBMS-er

Databasedesign HVA? HVORDAN? E/R diagram. Begrepsmessig databasedesign. Logisk databasedesign. Fysisk databasedesign

1. Introduksjon til Oracle Express Edition

Metaspråket for å beskrive grammatikk

Innhold Forord Innledning Kapittel 1 Introduksjon til databaser og databasesystem

SQL og Mengdelære. Oracle, MySQL, Access, bruker forskjellige syntaks.

EKSAMEN DATABASER

FORORD... III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE... VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

Tilkobling og Triggere

Introduksjon til fagfeltet

Datamodellering og databaser SQL, del 2

Database security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado

Tabeller og enkle spørringer

1. SQL datadefinisjon og manipulering

FORORD...III KAPITTELOVERSIKT... VI INNHOLDSFORTEGNELSE...VII DEL I SQL OG RELASJONSDATABASER INTRODUKSJON...

Applikasjonsutvikling med databaser

MySQL. Historikk. Nedlasting og installasjon

Datamodellering og databaser SQL, del 2

Ulike DBMSer. Mest kjente: Oracle PostGreSQL* MySQL* SQLServer* DB2 SQLite Access (DBMS og utv. verktøy i ett) *Skal benyttes i kurset.

Datamodellering og databaser SQL, del 2

Forelesning 3 DAS - Systemtabeller, indekser, distribuerte systemer m.m. - Tom Heine Nätt/Edgar Bostrøm

Utvikling fra kjernen og ut

svarforslag SLUTTEKSAMEN IBE211 Databaser, våren 2015

5602 DATABASER Bokmål/nynorsk. 17 (inkludert denne forsiden) Eksamensresultatene blir offentliggjort på Studentweb.

1. Innføring i bruk av MySQL Query Browser

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

EKSAMEN 6102 / 6102N DATABASER

Last ned arkivet som inneholder RoleAdmin-applikasjonen, pakk den ut og installer applikasjonen på vanlig måte.

Avansert bruk av SQL. Avanserte spørringer Valguttrykk Spørring på spørring Unionspørringer Delspørringer, vekselvirkende delspørringer Kvantorer

SLUTTPRØVE 5602 DATABASER I (inkludert vedlegg og denne forsida) Vedlegg: A: Eksempeldata og B: Svarark til oppgave 4

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

SQL 3: Opprette tabeller, datainnsetting og utsnitt

Normalisering. Partielle avhengigheter Transitive avhengigheter Normalformer: 1NF, 2NF, 3NF, BCNF Normaliseringsstegene Denormalisering

SQL: Datatyper m.m. Evgenij Thorstensen V18. Evgenij Thorstensen SQL: Datatyper m.m. V18 1 / 12

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

INF1300 Introduksjon til databaser

ORDBMS og OODBMS i praksis

1. SQL spørringer mot flere tabeller

Satsvise, interaktive, sanntids/innbakte systemer. Arne Maus, Ifi. Oppdeling av både program og data på flere maskiner

4.1. Kravspesifikasjon

Arne Maus, Ifi. delvis lån av gamle foiler

Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet. Løsningsforslag

6105 Windows Server og datanett

Databaser kort intro. Tom Heine Nätt

DBS18 - Strategier for Query-prosessering

Repetisjonsforelesning, SQL og utover

Databaser. Relasjonsmodellen 2 Læreboka: Kap. 2 Relasjonsmodellen

Utvikling av dynamiske nettsteder med PHP og databaser, høsten 2006

Kontakt oss i Egroup for mer informasjon!

Kjøre Wordpress på OSX

Løsningsskisse til Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Tabelldefinisjon og datamanipulering

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

1. Introduksjon og bakgrunn

Høgskolen i Telemark EKSAMEN 6102 DATABASER Tid: Hjelpemidler: Vedlegg: Eksempeldata til oppgave 1

AP221 Use Case TUL Administrer brukere, grupper og rettigheter

Kurskategori 3: Utvikling av IKT- systemer. høsten

Oppgave 1 Datamodellering 25 %

Andre sett obligatoriske oppgaver i INF3100 V2012

IN2090 Databaser og datamodellering. 08 Typer og skranker

Databasers typesystem. IN2090 Databaser og datamodellering. 08 Typer og skranker. SQL-standarden vs. RDBMSer. Hvilke datatyper har vi

1. SQL server. Beskrivelse og forberedelse til installasjon

Spørsmålskompilering del 1

Spørsmålskompilering del 1

OM DATABASER DATABASESYSTEMER

INF130 INF130. INF130:Repetisjon INF130:Repetisjon 1. Tabeller og enkle spørringer. Repetisjon

10. ASP og SQL Innledning Recordset-objektet. Innhold. Referanse til læreboka Kapittel Se detaljer nedenfor.

DBS1: Databases and database users

9 Online Backup. Priser KR 100 / PC lisens KR 300 / Server lisens (inkluderer bl.a. SQL/Exchange) KR 0,50 / GB

Oppgaver Oppgave a: Sett opp mulige relasjoner

Forelesning 1 DAS - Introduksjon / Systemer / Brukeradmin - (Tom Heine Nätt /) Edgar Boström / Lars V. Magnusson

D: Ingen trykte eller håndskrevne hjelpemiddel tillatt. Bestemt, enkel kalkulator tillatt.

Eksamensoppgave i TDT4145 Datamodellering og databasesystemer

Andre sett obligatoriske oppgaver i INF3100 V2013

Institutt for datateknikk. Fag TDT4145 Datamodellering og databasesystemer Løsningsforslag til øving 3: Algebra og SQL

IN2090 Databaser og datamodellering 07 Datamanipulering

EKSAMEN. Emnekode: ITF Emne: Databaser. Dato: Eksamenstid: Hjelpemidler: Syntaksoversikt (vedlagt oppgaven)

Transaksjonsmodell. Samtidighet (1) ACID-transaksjoner. Samtidighet (2) Systemkræsj (1) Kapittel 17, Coping With System Failure

En lett innføring i foreninger (JOINs) i SQL

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Løsningsforslag til eksamen i IN2090 Databaser og datamodellering og INF1300 Introduksjon til databaser 6. desember :30 18:30 (4 timer)

EKSAMEN 6102 / 6102N DATABASER

UNIVERSITETET I OSLO SQL. Structured Query Language. (forts.) Institutt for Informatikk. INF Ragnar Normann 1

IN2090 Databaser og datamodellering. 08 Typer og skranker

EKSAMENSOPPGAVE I TDT4145 DATAMODELLERING OG DATABASESYSTEMER. Faglig kontakt under eksamen: Svein Erik Bratsberg og Roger Midtstraum

IKT-reglement for NMBU

Databasesystemer, oversikt

DBMS Database Management System (repetisjon) Programmeringsgrensesnitt. Serialiserbarhet

Integrasjon mot Active Directory i EK 2.37

HR analysen. Ny versjon Brukermal. Administratorer

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Transkript:

Databaseadministrasjon Oppgavene til DBA gjennom livsløpet til databasen Systemarkitekturer Systemkatalogen Oppbygging av DBHS Verktøy for DBA Sikkerhetstrusler og virkemidler Sikkerhetskopiering og gjenoppbygging Optimalisering Overvåking Brukeradministrasjon Brukere, grupper/roller, rettigheter Bruk av utsnitt Pensum: Kapittel 11 Databaser Leksjon 11: Databaseadministrasjon - 1

Oppgavene til DBA Man skiller gjerne mellom dataadministrasjon (strategisk) og databaseadministrasjon (teknisk). Overordnet ansvar gjennom hele livsløpet til en database: Planlegging, analyse og design, implementasjon, drift, videreutvikling. Definere retningslinjer og prosedyrer. Evaluering, valg og installasjon av DBHS og andre verktøy. Sikkerhet: Brukere og grupper, passord, rettigheter, aksesskontroll, overvåking. Opplæring av brukere, brukerstøtte. Sikkerhetskopiering og gjenoppbygging ved feil. Optimalisering Databaser Leksjon 11: Databaseadministrasjon - 2

Systemarkitekturer Sentraliserte systemer (historisk) En sentral databasemaskin styrer N «dumme» terminaler. Klient/tjener Klient (arbeidsstasjon) sender forespørsel, tjener svarer. Klient SQL Spørreresultat Databasetjener Flerlagsarkitektur og web-løsninger Databasetjener, applikasjonstjener/web-tjener og klient. Databaser Leksjon 11: Databaseadministrasjon - 3

Systemarkitekturer Distribuerte databasesystemer Består av et antall «noder», hver med sitt DBHS og sin del av databasen, og i stand til å kommunisere med de andre nodene. Data kan fordeles mellom nodene på flere måter: Horisontal fragmentering: Tabell delt opp etter rader. Vertikal fragmentering: Tabell delt opp etter kolonner. Primærnøkkel må være med i alle fragmenter! Kombinert fragmentering. Replikering: Data lagret på flere noder (flere kopier). Brukeren skal ikke behøve å vite hvor data er lagret. Hver node må har tilgang til systemkatalogen! Transaksjoner: alt-eller-ingenting på alle-eller-ingen noder! Spørreoptimalisering: Hvordan bør spørringen utføres? Databaser Leksjon 11: Databaseadministrasjon - 4

Systemkatalogen Database inneholder tabeller og indekser, men også andre typer data. Metadata, eller «data om data» er beskrivelser av databasen: Hvilke tabeller finnes? Hvordan er tabellene bygget opp? Hvilke indekser er definert? Statistiske data brukes av spørreoptimalisatoren: Hvor mange rader har tabellene? Hvor mange forskjellige verdier er lagret i en kolonne? Data om brukere og deres rettigheter. Systemkatalogen er en samlebetegnelse på alle slike data. Data i systemkatalogen er ofte lagret på tabellform (systemtabeller), som betyr at vi kan bruke SQL for rapportering. Forenklet struktur: Tabell(Tabellnavn, Eier*, DatoLaget) Kolonne(Tabellnavn*, Kolonnenavn, Datatype) Bruker(Brukernavn, Passord, Lagringsplass) Tabellrettighet(Brukernavn*, Tabellnavn*, Rettigheter) Databaser Leksjon 11: Databaseadministrasjon - 5

Hovedtyper av brukere Sluttbruker Brukerapplikasjon Utvikler Utviklingsverktøy DBHS DBA SQL-editor Databaser Leksjon 11: Databaseadministrasjon - 6

Oppbygging av et DBHS (prinsippskisse) s.239 Databasehåndteringssystem Adgangskontroll SQL-parserer Verktøy Rettighetskontroll Integritetskontroll Spørreoptimalisator Bruker Transaksjoner Samtidighetskontroll Loggskriver Dataaksess SQL-maskin Bufferhåndterer Data Systemkatalog Katalogtjeneste Filhåndterer Statistikk Indekser Databaser Leksjon 11: Databaseadministrasjon - 7

Spørreoptimalisering SELECT O.OrdreDato FROM Kunde AS K INNER JOIN (Ordre AS O INNER JOIN Ordrelinje AS OL ON O.OrdreNr = OL.OrdreNR) ON K.KNr = O.KNr WHERE K.Etternavn = Fotland AND OL.VNr = 10830 SQL legger ikke fast hvordan spørringen utføres! Hvordan kunne spørringen bli utført? (s. 241) 1. Likekobling i FROM-delen innenfra og ut. 2. Koblingsresultat filtreres gjennom sammensatt WHERE-delen. 3. Verdiene i kolonnen OrdreDato plukkes ut. Hvorfor er det ikke optimalt? Spørreoptimalisering: Oversetter til uttrykk i relasjonsalgebra. (Hvilket i eksemplet?) Omskriving av uttrykk til en mer effektivt form. Databaser Leksjon 11: Databaseadministrasjon - 8

Spørreoptimalisering Operatortrær kan representere SQL-spørringer: Etternavn LIKE A* AnsattID, Etternavn, PNr, AntTimer Ansatt.AnsattNr=Arbeid.AnsattNr Ansatt Arbeid Operatortrær blir brukt i forbindelse med spørreoptimalisering. Eksempel på regel: Skyv og nedover i treet. Bytt om på likekoblinger for å minske mellomresultater. Bryt ned sammensatte seleksjoner i flere enkle. Databaser Leksjon 11: Databaseadministrasjon - 9

Oppgavene til en DBA - Verktøy for DBA Eksempel: Oracle Enterprise Manager er et «total-verktøy» for databaseadministrasjon. Starte og ta ned databasen. Sikkerhetskopiering og gjenoppbygging etter feil Definere tabeller, indekser, Brukeradministrasjon Sette grenser for brukernes ressursbruk Organisere fysiske lagringsstrukturer Skrive og analysere SQL-kommandoer Starte «batch»-jobber Visualisere bruk av disk, buffer Gjøre databasen tilgjengelig i et nettverk Databaser Leksjon 11: Databaseadministrasjon - 10

Oracle Enterprise Manager Databaser Leksjon 11: Databaseadministrasjon - 11

Schema + Security Databaser Leksjon 11: Databaseadministrasjon - 12

Sikkerhetstrusler og virkemidler Uhell Menneskelig svikt Programvarefeil Maskinvarefeil Strømstans Angrep Ansatte / eksterne Innsyn / endring Direkte mot databasen Indirekte via operativsystem / nettverk Virkemidler Sikkerhetskopiering, loggføring og gjenoppbygging Overvåking Kryptering Aksesskontroll Fysisk kontroll Passord Rettigheter Duplisering av utstyr Nødaggregat Rutiner, «brann-øvelser» Databaser Leksjon 11: Databaseadministrasjon - 13

Sikkerhetskopiering og gjenoppbygging Verktøy for sikkerhetskopiering (full/inkrementell) Verktøy for gjenoppbygging (recovery) Transaksjoner Transaksjoner skal utføres i sin helhet eller ikke i det hele tatt. Informasjon om oppdateringer blir skrevet til transaksjonsloggen før databasen blir oppdatert. Siste sikkerhetskopi + transaksjonsloggen brukes ved gjenoppbygging for å bringe databasen tilbake i en konsistent tilstand. Rutiner for sikkerhetskopiering Tidspunkter Oppbevaring av sikkerhetskopier Databaser Leksjon 11: Databaseadministrasjon - 14

Sikkerhetskopier og gjenoppbygging Diskkrasj Transaksjonslogg Tid Full sikkerhetskopi Inkrementelle sikkerhetskopier Full sikkerhetskopi: Hele databasen kopieres til et annet lagrings-medium. For eksempel en gang i uken. Inkrementelle sikkerhetskopier: Kun det som er endret siden forrige gang blir kopiert. For eksempel hver natt. Databaser Leksjon 11: Databaseadministrasjon - 15

Effektivitet Valg av maskinvare Antall disker Hvilket RAID-system? (Redundant Array of Independent Disks) Størrelse på hurtigminne Hastighet på nettverk Fysisk design Velge indekser Denormalisering Filstrukturer Overvåking og optimalisering Skrive om SQL-kode, gi DBHS hint Legge til indekser, endre fysisk lagringsstruktur Endre systemparameter (bufferstørrelser, loggstørrelser) Databaser Leksjon 11: Databaseadministrasjon - 16

Brukeradministrasjon Vi ønsker å tildele en bestemt bruker retten til å utføre en bestemt operasjon på et bestemt objekt. Eksempel: Per skal kunne lese kundetabellen. Objekter Brukere Rettigheter Vi skiller mellom objektrettigheter (privilegium) og systemrettigheter. Starte og stoppe DBHS er eksempel på en systemrettighet. Brukerinformasjonen blir lagret i en eller flere systemtabeller. Databaser Leksjon 11: Databaseadministrasjon - 17

Grupper / roller En gruppe (eller rolle) er en samling brukere som skal ha de samme rettighetene i databasesystemet. Eksempel: Gruppen Selger Bruk av grupper: Opprett grupper Tildel grupper rettigheter på ulike objekter Opprett brukere Meld brukere inn i grupper Brukere arver rettigheter fra gruppene de er medlem av. DBA slipper dermed å tildele enkeltbrukere rettigheter. MySQL støtter ikke roller. Databaser Leksjon 11: Databaseadministrasjon - 18

Rettigheter i SQL Per skal kunne lese og oppdatere tabellen Kunder: GRANT SELECT, UPDATE ON Kunder TO Per Per skal ikke lenger få lov til å oppdatere tabellen Kunder: REVOKE UPDATE ON Kunder FROM Per For å få lov til å gi rettigheten videre, føy til: WITH GRANT OPTION - for objektrettigheter WITH ADMIN OPTION - for systemrettigheter Oracle: CREATE USER, CREATE ROLE, DROP USER, DROP ROLE, DROP USER CASCADE, CREATE PROFILE, Databaser Leksjon 11: Databaseadministrasjon - 19

Utsnitt (views) og rettigheter Hva om vi ønsker å tildele rettigheter til utvalgte rader/kolonner i en tabell? Det er mulig å tildele rettigheter på utsnitt uten å gi rettigheter på underliggende tabeller. Merk: UPDATE-rettighet på et utsnitt betyr at man får lov til å oppdatere «via» utsnittet, som medfører oppdatering av den underliggende tabellen, men man kan altså samtidig hindre oppdatering direkte i tabellen. Databaser Leksjon 11: Databaseadministrasjon - 20

Et grovmasket sikkerhetssystem Vi skiller kun mellom tre brukertyper: Administratorer: Får alle rettigheter. Sluttbrukere: Jobber med innholdet av databasen. Får rettigheter til å avlese / sette inn / oppdatere og slette data. Utviklere: Jobber med strukturen. Får rettigheter til å lage nye tabeller, spørringer, skjemaer, rapporter, makroer og moduler, og også å endre definisjonen av eksisterende objekter. Her skiller vi altså ikke mellom konkrete objekter. Databaser Leksjon 11: Databaseadministrasjon - 21

Et mer finmasket sikkerhetssystem Forskjellige deler av databasen blir brukt av forskjellige avdelinger/stillingskategorier. Vi deler inn gruppen av Sluttbrukere. Eksempler: AvdelingA, AvdelingB, Sekretær, Selger, Direktør, Kan være nyttig å lage grupper (roller) i flere «nivåer». I Oracle kan roller tildeles andre roller. Eksempel: Både rollen Selger og rollen Sekretær trenger rollen Innsyn. Hvis Selger og Sekretær skal ha mange av de samme rettighetene er det arbeidsbesparende å tildele rettighetene 1 gang til Innsyn, og deretter gi Innsyn til Selger og Sekretær. Databaser Leksjon 11: Databaseadministrasjon - 22

SQL og metadata i Oracle Hvordan er tabellene mine definert? SELECT table_name, column_name, data_type FROM user_tab_columns Hvilke rettigheter er delt ut på tabellene til Per: SELECT * FROM dba_tab_privs WHERE owner= Per Hvilke rettigheter har Per delt ut: SELECT * FROM dba_col_privs WHERE grantee = Per Databaser Leksjon 11: Databaseadministrasjon - 23

SQL og loggføring i Oracle (Overvåkning) Logg utvalgsspørringer mot Ansatt-tabellen: AUDIT SELECT ON Ansatt; Hva har skjedd? SELECT username, timestamp, obj_name, action_name FROM user_audit_object; En trigger er en egendefinert «prosedyre» som blir utført hver gang en bestemt operasjon blir utført, for eksempel ved oppdatering av en bestemt tabell. Se kapittel 14. Triggere kan brukes for «skreddersøm» av overvåking. Eksempel: Skriv til en logg-tabell hver gang Per endrer i kolonnen Ansatt.Lønn. Databaser Leksjon 11: Databaseadministrasjon - 24