Datakontrolsprog
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:
-
GRANT
: Denne kommando bruges til at give specifikke rettigheder til brugere eller roller; -
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;
Tak for dine kommentarer!
Spørg AI
Spørg AI
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
Datakontrolsprog
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:
-
GRANT
: Denne kommando bruges til at give specifikke rettigheder til brugere eller roller; -
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;
Tak for dine kommentarer!