Мова Керування Даними
Мова керування даними (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;
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 4.55
Мова Керування Даними
Свайпніть щоб показати меню
Мова керування даними (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;
Дякуємо за ваш відгук!