Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Мова Керування Даними | Деякі Додаткові Теми
Просунуті Техніки в SQL

bookМова Керування Даними

Мова керування даними (DCL) — це підмножина SQL, яка використовується для керування доступом до даних, що зберігаються в системі керування реляційними базами даних.
Команди DCL головним чином стосуються надання або відкликання привілеїв на об'єкти бази даних, такі як таблиці, подання та схеми.

Команди DCL

Дві основні команди DCL:

  1. GRANT: використовується для надання певних привілеїв користувачам або ролям;

  2. REVOKE: використовується для відкликання певних привілеїв у користувачів або ролей, яким вони були раніше надані.

Привілеї

Об'єкти

Реалізація

Для надання певних привілеїв для об'єкта в SQL конкретному користувачу використовується наступний оператор:

GRANT privileges
ON object
TO {user | role | PUBLIC};

У базі даних існує 3 типи ролей, яким можна надати привілеї:

  • user: Окремий користувач бази даних;
  • role: Роль у базі даних, іменована група привілеїв, яку можна призначити користувачам (наприклад, admin, developer, analyst);
  • PUBLIC: Спеціальне ключове слово, що надає вказані привілеї всім користувачам.

Можна надати роль користувачу за допомогою наступного оператора:

GRANT role TO user;

Нарешті, можна відкликати раніше надані привілеї за допомогою наступного оператора:

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

Приклад

Нижче наведено приклади використання команди GRANT для надання різних привілеїв на таблиці bankaccounts та userlogs різним ролям і користувачам.

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

Тепер можна відкликати деякі з наданих привілеїв:

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

Який привілей дозволяє користувачу читати дані з таблиці?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 6

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Suggested prompts:

What is the difference between GRANT and REVOKE commands?

Can you explain what each privilege allows a user to do?

How do roles and users differ in terms of privileges?

Awesome!

Completion rate improved to 4.35

bookМова Керування Даними

Свайпніть щоб показати меню

Мова керування даними (DCL) — це підмножина SQL, яка використовується для керування доступом до даних, що зберігаються в системі керування реляційними базами даних.
Команди DCL головним чином стосуються надання або відкликання привілеїв на об'єкти бази даних, такі як таблиці, подання та схеми.

Команди DCL

Дві основні команди DCL:

  1. GRANT: використовується для надання певних привілеїв користувачам або ролям;

  2. REVOKE: використовується для відкликання певних привілеїв у користувачів або ролей, яким вони були раніше надані.

Привілеї

Об'єкти

Реалізація

Для надання певних привілеїв для об'єкта в SQL конкретному користувачу використовується наступний оператор:

GRANT privileges
ON object
TO {user | role | PUBLIC};

У базі даних існує 3 типи ролей, яким можна надати привілеї:

  • user: Окремий користувач бази даних;
  • role: Роль у базі даних, іменована група привілеїв, яку можна призначити користувачам (наприклад, admin, developer, analyst);
  • PUBLIC: Спеціальне ключове слово, що надає вказані привілеї всім користувачам.

Можна надати роль користувачу за допомогою наступного оператора:

GRANT role TO user;

Нарешті, можна відкликати раніше надані привілеї за допомогою наступного оператора:

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

Приклад

Нижче наведено приклади використання команди GRANT для надання різних привілеїв на таблиці bankaccounts та userlogs різним ролям і користувачам.

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

Тепер можна відкликати деякі з наданих привілеїв:

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

Який привілей дозволяє користувачу читати дані з таблиці?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 3. Розділ 6
some-alt