403.64K
Категория: Базы данныхБазы данных

Команды DCL в SQL. Примеры использования

1.

Команды DCL в SQL.
Примеры использования

2.

Модули SQL

3.

Что такое DCL?
• DCL (Data Control Language) – Язык управления доступом к
данным в базе данных.
• Является подмножеством языка SQL.
• Он помогает управлять доступом к данным в базе данных.
• Инструмент для настройки безопасности БД.

4.

Команды DCL
• GRANT
• REVOKE
• DENY

5.

Системные и объектные привилегии
• Системные привилегии – разрешает выполнение операций над всеми
объектами какого-то типа, принадлежащими конкретному пользователю, или
базе данных в целом. При выдаче системных привилегий мы не указываем
объект.
• Объектные привилегии – разрешает выполнение определенной
операции над конкретным объектом (например, над таблицей). Название
каждой из объектных привилегии совпадает с названием оператора, который
она разрешает выполнять тому или иному пользователю над конкретным
объектом базы данных.

6.

Роль
• Роль – именованный набор привилегий.
• Роли используются тогда, когда ручное перечисление нужных
привилегий затруднительно. Допустим, если появиться новый
пользователь БД, намного эффективнее присвоить ему роль, а не
вручную присваивать привилегии, входящие в роль.
• Пример создания роли:
CREATE ROLE standartUser;
GRANT select, insert, update ON TimeTable, Books TO standartUser;

7.

Объектные
привилегии
GRANT
Команда GRANT выдаёт новую
привилегию пользователю БД
[привилегия]* – то, что мы разрешаем делать. На месте привилегии может быть роль.
Примеры: SELECT, INSERT, UPDATE, DELETE, EXECUTE.
[Объект]* –Объект базы данных, на который предоставлена привилегия.
Может быть: функцией, хранимой процедурой, таблицей или представлением.
[Пользователь]* – пользователь БД.
[С опцией GRANT] – при указании, позволяет пользователю передавать привилегию другим
пользователям.

8.

Системные
привилегии
GRANT
[привилегия]* – то, что мы разрешаем делать. На месте привилегии может быть роль.
Примеры: CONNECT, RESOURCE, DBA
[Пользователь]* – пользователь БД.
[С опцией ADMIN] – при указании, позволяет пользователю передавать привилегию другим
пользователям.

9.

Примеры использования GRANT
GRANT SELECT ON employees TO user1 - объектные привилегии
GRANT CONNECT TO user1 - системные привилегии

10.

REVOKE
Объектные
привилегии
Команда REVOKE удаляет привилегию у
пользователя БД
• [GRANT OPTION FOR] – при указании данного пункта, у пользователя удалится
НЕ привилегия, а ВОЗМОЖНОСТЬ выдавать привилегию другим
пользователям.
• [разрешение] – какая-либо привилегия. Примеры: SELECT, INSERT, UPDATE, DELETE,
EXECUTE.
• [объект] – объект БД.
• [пользователь] – любой пользователь/роль в БД.
• [CASCADE] – удаляет это разрешение у всех, кому его выдал указанный
пользователь.

11.

REVOKE
Системные
привилегии
• [ADMIN OPTION FOR] – при указании данного пункта, у
пользователя удалится НЕ привилегия, а ВОЗМОЖНОСТЬ выдавать
привилегию другим пользователям.
• [разрешение] – какая-либо привилегия. Примеры: CONNECT, RESOURCE,
DBA
• [пользователь] – любой пользователь/роль в БД.

12.

Пример использования REVOKE
REVOKE INSERT ON orders FROM user2 – объектные привилегии
REVOKE DBA FROM user2 – системная привилегии

13.

DENY
Объектные
привилегии
Команда DENY запрещает
пользователю получать привилегию.
• [разрешение] – Та привилегия, получение которой мы запрещаем.
Примеры: SELECT, INSERT, UPDATE, DELETE, EXECUTE.
• [объект] – Объект БД, к которому относится разрешение.
• [пользователь] – пользователь, которому мы запрещаем получать
привилегию.

14.

DENY
Системные
привилегии
• [разрешение] – Та привилегия, получение которой мы запрещаем.
Примеры: CONNECT, RESOURCE, DBA
• [пользователь] – пользователь, которому мы запрещаем получать
привилегию.

15.

Примеры использования DENY
DENY INSERT ON customers TO user3 - объектные привилегии
DENY RESOURCE TO user1 - системные привилегии

16.

Спасибо за внимание!
English     Русский Правила