Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Data Control Language | Noen Tilleggs­emner
SQL-optimalisering og spørringsfunksjoner

Data Control Language

Sveip for å vise menyen

Data Control Language (DCL) er en undergruppe av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer handler hovedsakelig om å 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.

Rettigheter

Objekter

Implementering

For å tildele privilegier for et objekt i SQL til en bestemt bruker, kan følgende setning benyttes:

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

Det finnes tre typer roller i databasen som kan tildeles privilegier:

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

En rolle kan tildeles en bruker med følgende setning:

GRANT role TO user;

Tidligere tildelte privilegier kan tilbakekalles med følgende setning:

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

Eksempel

Her er noen eksempler på hvordan GRANT-kommandoen kan brukes til å tildele ulike privilegier 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 privilegiene:

-- 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

Hvilket privilegium gir en bruker tilgang til å lese data fra en tabell?

Velg det helt riktige svaret

Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5

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

Data Control Language

Data Control Language (DCL) er en undergruppe av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer handler hovedsakelig om å 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.

Rettigheter

Objekter

Implementering

For å tildele privilegier for et objekt i SQL til en bestemt bruker, kan følgende setning benyttes:

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

Det finnes tre typer roller i databasen som kan tildeles privilegier:

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

En rolle kan tildeles en bruker med følgende setning:

GRANT role TO user;

Tidligere tildelte privilegier kan tilbakekalles med følgende setning:

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

Eksempel

Her er noen eksempler på hvordan GRANT-kommandoen kan brukes til å tildele ulike privilegier 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 privilegiene:

-- 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;
Alt var klart?

Hvordan kan vi forbedre det?

Takk for tilbakemeldingene dine!

Seksjon 3. Kapittel 5
some-alt