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
Quizzes & Challenges
Quizzes
Challenges
/
SQL-optimalisering og spørringsfunksjoner

bookDatakontrollspråk

Data Control Language (DCL) er en undergruppe av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer omhandler hovedsakelig tildeling eller fjerning av 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 rettigheter til et objekt i SQL for 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 med følgende setning:

GRANT role TO user;

Til slutt kan vi tilbakekalle tidligere tildelte rettigheter 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 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

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

Suggested prompts:

Can you explain the difference between GRANT and REVOKE with examples?

What are some best practices for managing privileges in a database?

How do roles and users differ when assigning privileges?

Awesome!

Completion rate improved to 4.55

bookDatakontrollspråk

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 omhandler hovedsakelig tildeling eller fjerning av 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 rettigheter til et objekt i SQL for 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 med følgende setning:

GRANT role TO user;

Til slutt kan vi tilbakekalle tidligere tildelte rettigheter 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 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

Hvilket privilegium 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 5
some-alt