Datakontrollspråk
Data Control Language (DCL) är en underuppsättning av SQL som används för att kontrollera åtkomst till data som lagras i ett relationsdatabashanteringssystem.
DCL-kommandon handlar främst om att bevilja eller återkalla rättigheter på databasobjekt såsom tabeller, vyer och scheman.
DCL-kommandon
De två huvudsakliga DCL-kommandona är:
-
GRANT
: Detta kommando används för att ge specifika rättigheter till användare eller roller; -
REVOKE
: Detta kommando används för att ta bort specifika rättigheter från användare eller roller som tidigare har beviljats.
Rättigheter
Objekt
Implementering
För att bevilja vissa privilegier för ett objekt i SQL till en specifik användare kan vi använda följande sats:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Det finns tre typer av roller i databasen som du kan bevilja privilegier till:
- user: En individuell databasanvändare;
- role: En databasroll, en namngiven grupp av privilegier som kan tilldelas användare (t.ex. admin, utvecklare, analytiker);
- PUBLIC: Ett särskilt nyckelord som beviljar de angivna privilegierna till alla användare.
Vi kan tilldela en roll till en användare med följande sats:
GRANT role TO user;
Slutligen kan vi återkalla tidigare beviljade privilegier med följande sats:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Exempel
Här är några exempel på hur GRANT
-kommandot används för att tilldela olika privilegier på tabellerna bankaccounts och userlogs till olika roller och användare.
-- 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 återkalla några av de beviljade privilegierna:
-- 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;
Tack för dina kommentarer!
Fråga AI
Fråga AI
Fråga vad du vill eller prova någon av de föreslagna frågorna för att starta vårt samtal
Awesome!
Completion rate improved to 4.35
Datakontrollspråk
Svep för att visa menyn
Data Control Language (DCL) är en underuppsättning av SQL som används för att kontrollera åtkomst till data som lagras i ett relationsdatabashanteringssystem.
DCL-kommandon handlar främst om att bevilja eller återkalla rättigheter på databasobjekt såsom tabeller, vyer och scheman.
DCL-kommandon
De två huvudsakliga DCL-kommandona är:
-
GRANT
: Detta kommando används för att ge specifika rättigheter till användare eller roller; -
REVOKE
: Detta kommando används för att ta bort specifika rättigheter från användare eller roller som tidigare har beviljats.
Rättigheter
Objekt
Implementering
För att bevilja vissa privilegier för ett objekt i SQL till en specifik användare kan vi använda följande sats:
GRANT privileges
ON object
TO {user | role | PUBLIC};
Det finns tre typer av roller i databasen som du kan bevilja privilegier till:
- user: En individuell databasanvändare;
- role: En databasroll, en namngiven grupp av privilegier som kan tilldelas användare (t.ex. admin, utvecklare, analytiker);
- PUBLIC: Ett särskilt nyckelord som beviljar de angivna privilegierna till alla användare.
Vi kan tilldela en roll till en användare med följande sats:
GRANT role TO user;
Slutligen kan vi återkalla tidigare beviljade privilegier med följande sats:
REVOKE privileges
ON object
FROM {user | role | PUBLIC};
Exempel
Här är några exempel på hur GRANT
-kommandot används för att tilldela olika privilegier på tabellerna bankaccounts och userlogs till olika roller och användare.
-- 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 återkalla några av de beviljade privilegierna:
-- 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;
Tack för dina kommentarer!