For å drive et databasesystem, trenger man en databaseadministrator(DBA).
Oppgaven til DBA er å administrere brukere og databaser, og å konfigurere
databaseserveren.
En viktig del av konfigurasjonen av serveren er tilgangskontroll,
det vil si at man setter opp regler for hvem som skal få koble seg til serveren
og de ulike databasene,
og hva forskjellige brukere skal få lov til å gjøre på systemet.
Mye av funksjonaliteten i forhold til hvordan man oppretter databaser og brukere,
antall og kompleksitet på konfigurasjonsfiler osv er forskjellig fra
system til system.
Også syntax for grant og revoke kan være litt forskjellig fra system til system. Sjekk dokumentasjonen for den databasen du jobber med for å se hvordan ting gjøres og hva som er tilgjengelig i den databasen du jobber med
GRANT {<rettighetsliste | ALL PRIVILEGES>} ON <objekt> TO {<brukerliste | PUBLIC>} [WITH GRANT OPTION]
REVOKE [GRANT OPTION FOR] {<rettighetsliste | ALL PRIVILEGES>} ON <objekt> FROM {<brukerliste | PUBLIC>} [RESTRICT | CASCADE]
der <rettighetsliste> kan være en eller flere av disse(avhengig av databasesystem):
WITH GRANT OPTION betyr at brukerne i <brukerliste> kan gi videre (med GRANT) til andre brukere de rettighetene de har fått
GRANT OPTION FOR betyr at brukerne i <brukerliste> blir fratatt muligheten til å gi andre rettigheter(med GRANT) som de har fått
RESTRICT og CASCADE brukes i forbindelse med pekere
RESTRICT betyr at man får feil ved kjøring av REVOKE dersom tabellen
man forsøker å hindre tilgangen til er referert til av et annet objekt(f.eks et view)
CASCADE sørger for at alle objekter som det blir referert fra rekursivt slettes.
I)
Bruker per gir med følgende kommando brukerne paal og espen rettigheter til SELECT på tabellen prinsesse:
GRANT SELECT ON prinsesse TO paal, espen;
II)
Brukeren jens fratar med følgende kommando brukerne karius og baktus rettighetene til DELETE på tabellen tann:
REVOKE DELETE ON tann FROM karius, baktus;