Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Datakontrollspråk | Noen Tilleggs­emner
Avanserte Teknikker i SQL

bookDatakontrollspråk

Data Control Language (DCL) er et delsett av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer er hovedsakelig knyttet til å tildele eller tilbakekalle rettigheter på databaseobjekter som tabeller, visninger og skjemaer.

DCL-kommandoer

De to viktigste DCL-kommandoene er:

  1. GRANT: Denne kommandoen brukes til å gi spesifikke rettigheter til brukere eller roller;

  2. REVOKE: Denne kommandoen brukes til å fjerne spesifikke rettigheter fra brukere eller roller som tidligere har fått dem tildelt.

Rettigheter

Objekter

Implementering

For å tildele noen rettigheter for et objekt i SQL til en bestemt bruker, kan vi bruke følgende setning:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Det finnes 3 typer roller i databasen som du kan tildele rettigheter til:

  • user: En individuell databasebruker;
  • role: En databaserolle, en navngitt gruppe med rettigheter som kan tildeles brukere (f.eks. admin, developer, analyst);
  • PUBLIC: Et spesielt nøkkelord som gir de angitte rettighetene til alle brukere.

Vi kan tildele en rolle til en bruker ved å bruke følgende setning:

GRANT role TO user;

Til slutt kan vi tilbakekalle tidligere tildelte rettigheter ved å bruke følgende setning:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Eksempel

Her er noen eksempler på hvordan du bruker GRANT-kommandoen for å tildele ulike rettigheter på tabellene BankAccounts og UserLogs til forskjellige roller og brukere.

-- Create role
CREATE ROLE bank_manager;

-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;

-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';

-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;

Nå kan vi tilbakekalle noen av de tildelte rettighetene:

-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;

-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
question mark

Hvilken rettighet gir en bruker mulighet til å lese data fra en tabell?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6

Spør AI

expand

Spør AI

ChatGPT

Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår

Awesome!

Completion rate improved to 4.35

bookDatakontrollspråk

Sveip for å vise menyen

Data Control Language (DCL) er et delsett av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer er hovedsakelig knyttet til å tildele eller tilbakekalle rettigheter på databaseobjekter som tabeller, visninger og skjemaer.

DCL-kommandoer

De to viktigste DCL-kommandoene er:

  1. GRANT: Denne kommandoen brukes til å gi spesifikke rettigheter til brukere eller roller;

  2. REVOKE: Denne kommandoen brukes til å fjerne spesifikke rettigheter fra brukere eller roller som tidligere har fått dem tildelt.

Rettigheter

Objekter

Implementering

For å tildele noen rettigheter for et objekt i SQL til en bestemt bruker, kan vi bruke følgende setning:

GRANT privileges
ON object
TO {user | role | PUBLIC};

Det finnes 3 typer roller i databasen som du kan tildele rettigheter til:

  • user: En individuell databasebruker;
  • role: En databaserolle, en navngitt gruppe med rettigheter som kan tildeles brukere (f.eks. admin, developer, analyst);
  • PUBLIC: Et spesielt nøkkelord som gir de angitte rettighetene til alle brukere.

Vi kan tildele en rolle til en bruker ved å bruke følgende setning:

GRANT role TO user;

Til slutt kan vi tilbakekalle tidligere tildelte rettigheter ved å bruke følgende setning:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Eksempel

Her er noen eksempler på hvordan du bruker GRANT-kommandoen for å tildele ulike rettigheter på tabellene BankAccounts og UserLogs til forskjellige roller og brukere.

-- Create role
CREATE ROLE bank_manager;

-- Grant privileges to bank_manager role
GRANT SELECT, INSERT, UPDATE, DELETE ON BankAccounts TO bank_manager;
GRANT SELECT, INSERT ON UserLogs TO bank_manager;

-- Create users
CREATE USER john WITH PASSWORD 'password123';
CREATE USER jane WITH PASSWORD 'password456';

-- Assign roles to users
GRANT bank_manager TO john;
GRANT bank_manager TO jane;

Nå kan vi tilbakekalle noen av de tildelte rettighetene:

-- Revoke privileges from bank_manager role
REVOKE UPDATE, DELETE ON BankAccounts FROM bank_manager;
REVOKE INSERT ON UserLogs FROM bank_manager;

-- Revoke bank_manager role from john
REVOKE bank_manager FROM john;
question mark

Hvilken rettighet gir en bruker mulighet til å lese data fra en tabell?

Select the correct answer

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 6
some-alt