Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lære Datakontrolsprog | Nogle Yderligere Emner
Avancerede Teknikker i SQL

bookDatakontrolsprog

Data Control Language (DCL) er en undergruppe af SQL, der bruges til at kontrollere adgangen til data, der er gemt i et relationelt databasehåndteringssystem.
DCL-kommandoer vedrører primært tildeling eller fjernelse af rettigheder på databaseobjekter såsom tabeller, views og skemaer.

DCL-kommandoer

De to vigtigste DCL-kommandoer er:

  1. GRANT: Denne kommando bruges til at give specifikke rettigheder til brugere eller roller;

  2. REVOKE: Denne kommando bruges til at fjerne specifikke rettigheder fra brugere eller roller, som tidligere har fået dem tildelt.

Rettigheder

Objekter

Implementering

For at tildele visse rettigheder til et objekt i SQL for en bestemt bruger, kan vi anvende følgende erklæring:

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

Der findes 3 typer roller i databasen, som du kan tildele rettigheder til:

  • user: En individuel databasebruger;
  • role: En databaserolle, en navngiven gruppe af rettigheder, der kan tildeles brugere (f.eks. admin, developer, analyst);
  • PUBLIC: Et særligt nøgleord, der tildeler de angivne rettigheder til alle brugere.

Vi kan tildele en rolle til en bruger ved at anvende følgende erklæring:

GRANT role TO user;

Endelig kan vi tilbagekalde tidligere tildelte rettigheder ved at anvende følgende erklæring:

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

Eksempel

Her er nogle eksempler på, hvordan GRANT-kommandoen bruges til at tildele forskellige rettigheder på tabellerne bankaccounts og userlogs til forskellige roller og brugere.

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

Nu kan vi tilbagekalde nogle af de tildelte rettigheder:

-- 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 rettighed giver en bruger mulighed for at læse data fra en tabel?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6

Spørg AI

expand

Spørg AI

ChatGPT

Spørg om hvad som helst eller prøv et af de foreslåede spørgsmål for at starte vores chat

Awesome!

Completion rate improved to 4.35

bookDatakontrolsprog

Stryg for at vise menuen

Data Control Language (DCL) er en undergruppe af SQL, der bruges til at kontrollere adgangen til data, der er gemt i et relationelt databasehåndteringssystem.
DCL-kommandoer vedrører primært tildeling eller fjernelse af rettigheder på databaseobjekter såsom tabeller, views og skemaer.

DCL-kommandoer

De to vigtigste DCL-kommandoer er:

  1. GRANT: Denne kommando bruges til at give specifikke rettigheder til brugere eller roller;

  2. REVOKE: Denne kommando bruges til at fjerne specifikke rettigheder fra brugere eller roller, som tidligere har fået dem tildelt.

Rettigheder

Objekter

Implementering

For at tildele visse rettigheder til et objekt i SQL for en bestemt bruger, kan vi anvende følgende erklæring:

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

Der findes 3 typer roller i databasen, som du kan tildele rettigheder til:

  • user: En individuel databasebruger;
  • role: En databaserolle, en navngiven gruppe af rettigheder, der kan tildeles brugere (f.eks. admin, developer, analyst);
  • PUBLIC: Et særligt nøgleord, der tildeler de angivne rettigheder til alle brugere.

Vi kan tildele en rolle til en bruger ved at anvende følgende erklæring:

GRANT role TO user;

Endelig kan vi tilbagekalde tidligere tildelte rettigheder ved at anvende følgende erklæring:

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

Eksempel

Her er nogle eksempler på, hvordan GRANT-kommandoen bruges til at tildele forskellige rettigheder på tabellerne bankaccounts og userlogs til forskellige roller og brugere.

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

Nu kan vi tilbagekalde nogle af de tildelte rettigheder:

-- 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 rettighed giver en bruger mulighed for at læse data fra en tabel?

Select the correct answer

Var alt klart?

Hvordan kan vi forbedre det?

Tak for dine kommentarer!

Sektion 3. Kapitel 6
some-alt