Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lära Data Control Language | Några Ytterligare Ämnen
SQL-optimering och Frågefunktioner

bookData Control Language

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:

  1. GRANT: detta kommando används för att ge specifika rättigheter till användare eller roller;

  2. 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 rättigheter 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 rättigheter till:

  • user: en enskild databasanvändare;
  • role: en databasroll, en namngiven grupp av rättigheter som kan tilldelas användare (t.ex. admin, developer, analyst);
  • PUBLIC: ett särskilt nyckelord som ger de angivna rättigheterna 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 rättigheter med följande sats:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Exempel

Här är några exempel på hur du använder kommandot GRANT för att tilldela olika behörigheter 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 tilldelade behörigheterna:

-- 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;
question mark

Vilken behörighet tillåter en användare att läsa data från en tabell?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5

Fråga AI

expand

Fråga AI

ChatGPT

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.55

bookData Control Language

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:

  1. GRANT: detta kommando används för att ge specifika rättigheter till användare eller roller;

  2. 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 rättigheter 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 rättigheter till:

  • user: en enskild databasanvändare;
  • role: en databasroll, en namngiven grupp av rättigheter som kan tilldelas användare (t.ex. admin, developer, analyst);
  • PUBLIC: ett särskilt nyckelord som ger de angivna rättigheterna 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 rättigheter med följande sats:

REVOKE privileges
ON object
FROM {user | role | PUBLIC};

Exempel

Här är några exempel på hur du använder kommandot GRANT för att tilldela olika behörigheter 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 tilldelade behörigheterna:

-- 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;
question mark

Vilken behörighet tillåter en användare att läsa data från en tabell?

Select the correct answer

Var allt tydligt?

Hur kan vi förbättra det?

Tack för dina kommentarer!

Avsnitt 3. Kapitel 5
some-alt