Datakontrollspråk
Data Control Language (DCL) er et delsett av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer er hovedsakelig knyttet til å tildele eller tilbakekalle 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 noen rettigheter for et objekt i SQL til 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 ved å bruke følgende setning:
GRANT role TO user;
Til slutt kan vi tilbakekalle tidligere tildelte rettigheter ved å bruke følgende setning:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Eksempel
Her er noen eksempler på hvordan du bruker GRANT
-kommandoen for å 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
Awesome!
Completion rate improved to 4.35
Datakontrollspråk
Sveip for å vise menyen
Data Control Language (DCL) er et delsett av SQL som brukes til å kontrollere tilgang til data lagret i et relasjonsdatabasesystem.
DCL-kommandoer er hovedsakelig knyttet til å tildele eller tilbakekalle 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 noen rettigheter for et objekt i SQL til 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 ved å bruke følgende setning:
GRANT role TO user;
Til slutt kan vi tilbakekalle tidligere tildelte rettigheter ved å bruke følgende setning:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Eksempel
Her er noen eksempler på hvordan du bruker GRANT
-kommandoen for å 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!