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