Мова Керування Даними
Свайпніть щоб показати меню
Мова керування даними (DCL) — це підмножина SQL, яка використовується для керування доступом до даних, що зберігаються в системі керування реляційними базами даних.
Команди DCL головним чином стосуються надання або відкликання привілеїв на об'єкти бази даних, такі як таблиці, подання та схеми.
Команди DCL
Дві основні команди DCL:
-
GRANT: ця команда використовується для надання певних привілеїв користувачам або ролям; -
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;
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат