Datakontrollsprå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:
-
GRANT: denne kommandoen brukes til å gi spesifikke rettigheter til brukere eller roller; -
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;
Takk for tilbakemeldingene dine!
Spør AI
Spør AI
Spør om hva du vil, eller prøv ett av de foreslåtte spørsmålene for å starte chatten vår
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
Datakontrollsprå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:
-
GRANT: denne kommandoen brukes til å gi spesifikke rettigheter til brukere eller roller; -
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;
Takk for tilbakemeldingene dine!