Brukere

Personer får tildelt tre MySQL-brukere:

Det vil også bli opprettet enkelte rollebrukere, f.eks. en bruker for webserveren, en for phpMyAdmin, e.l. Disse gis navn på tilsvarende form: <foobar>_r/<foobar>_rw/<foobar>_adm.

Host-begrensning

MySQL-brukere er ikke definert med bare et brukernavn, men med kombinasjonen av brukernavn og et hostmønster (<host> i denne dokumentasjonen), som begrenser hvilke maskiner brukeren kan koble til fra.

Per default oppretter vi MySQL-brukerne for tilgang fra maskiner under idi.ntnu.no (i GRANT-syntax: %.idi.ntnu.no). Ved spesielle behov bør vi kunne åpne eller sperre utover dette.

Databasetilgang fra webserver/PHP-script

Et vanlig use-case er at folk vil bruke en database fra PHP-script. For å unngå å ha databasepassord liggende i filer som er lesbare for alle, kan vi utnytte revers-proxyen (Pound) til å tilby databasetilgang uten synlige passord. De grumsete detaljene kommer på en egen Kilden-side etterhvert, men implikasjonen på MySQL-nivå blir at det opprettes MySQL-brukere på formen <brukernavn>_www@<webhoster>, som brukeren så kan velge å gi tilgang til sine databaser.

Tilgangskontroll

MySQL-brukere gis eksplisitt tilgang til enkeltdatabaser. Med unntak av adminbruker(e), skal MySQL-brukere ikke ha noen globale rettigheter overhodet.

MySQL-brukere på formen <brukernavn>_r@<host> gis lesetilgang (GRANT SELECT ON <database>.* ...).

MySQL-brukere på formen <brukernavn>_rw@<host> gis "vanlig" skrivetilgang (GRANT SELECT, INSERT, UPDATE, DELETE ON <database>.* ...).

MySQL-brukere på formen <brukernavn>_adm@<host> gis full tilgang, inkludert muligheten til å gi tilgang til andre (GRANT ALL, GRANT OPTION ON <database>.* ...).

Databaser

Databaser skal ha navn på formen <prefiks>_<suffix>, der prefikset brukes for å si noe om "eierskap":

Eksempler kan da være oyvindmo_gallery, tdt4100_forumdata og db_foobar.

Hver bruker skal selv kunne opprette databaser av den første typen ("personlige databaser"), mens de andre typene kun kan opprettes av databaseadministratorer.

Grensesnitt for administrasjon

Backup

Jevnlig, anslagsvis hver natt, kjøres det mysqldump av hver database til separate, daterte filer.

Vi kan gjøre diff for å fjerne identiske dumps, for det er antakelig mange databaser som ikke endrer seg hver dag.

Dumpene skal ikke være leselige for vanlige brukere, men for personlige databaser bør dumps gjøres tilgjengelig for brukeren på en eller annen måte (web-grensesnitt?), slik at de selv kan rulle tilbake dersom de har gjort noe galt og mistet data.


KlasseDrift

DatabasePolicyDraft (last edited 2005-08-04 10:56:59 by OyvindMoll)