Data Control Language
Data Control Language (DCL) er en undergruppe af SQL, der anvendes til at kontrollere adgangen til data, som er gemt i et relationelt databasehåndteringssystem.
DCL-kommandoer omhandler primært tildeling eller tilbagekaldelse af rettigheder på databaseobjekter såsom tabeller, views og skemaer.
DCL-kommandoer
De to vigtigste DCL-kommandoer er:
-
GRANT: denne kommando bruges til at tildele 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 rettigheder til et objekt i SQL for en bestemt bruger kan følgende statement anvendes:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Der findes 3 typer roller i databasen, som kan tildeles rettigheder:
- 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.
En rolle kan tildeles en bruger med følgende statement:
GRANT role TO user;
Tidligere tildelte rettigheder kan tilbagekaldes med følgende statement:
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.55
Data Control Language
Stryg for at vise menuen
Data Control Language (DCL) er en undergruppe af SQL, der anvendes til at kontrollere adgangen til data, som er gemt i et relationelt databasehåndteringssystem.
DCL-kommandoer omhandler primært tildeling eller tilbagekaldelse af rettigheder på databaseobjekter såsom tabeller, views og skemaer.
DCL-kommandoer
De to vigtigste DCL-kommandoer er:
-
GRANT: denne kommando bruges til at tildele 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 rettigheder til et objekt i SQL for en bestemt bruger kan følgende statement anvendes:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Der findes 3 typer roller i databasen, som kan tildeles rettigheder:
- 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.
En rolle kan tildeles en bruger med følgende statement:
GRANT role TO user;
Tidligere tildelte rettigheder kan tilbagekaldes med følgende statement:
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!