Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Мова Керування Даними | Деякі Додаткові Теми
Quizzes & Challenges
Quizzes
Challenges
/
Оптимізація 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. Розділ 5

Запитати АІ

expand

Запитати АІ

ChatGPT

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

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. Розділ 5
some-alt