Similar presentations:
Команды DCL в SQL. Примеры использования
1.
Команды DCL в SQL.Примеры использования
2.
Модули SQL3.
Что такое 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.
Примеры использования GRANTGRANT 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.
Пример использования REVOKEREVOKE INSERT ON orders FROM user2 – объектные привилегии
REVOKE DBA FROM user2 – системная привилегии
13.
DENYОбъектные
привилегии
Команда DENY запрещает
пользователю получать привилегию.
• [разрешение] – Та привилегия, получение которой мы запрещаем.
Примеры: SELECT, INSERT, UPDATE, DELETE, EXECUTE.
• [объект] – Объект БД, к которому относится разрешение.
• [пользователь] – пользователь, которому мы запрещаем получать
привилегию.
14.
DENYСистемные
привилегии
• [разрешение] – Та привилегия, получение которой мы запрещаем.
Примеры: CONNECT, RESOURCE, DBA
• [пользователь] – пользователь, которому мы запрещаем получать
привилегию.
15.
Примеры использования DENYDENY INSERT ON customers TO user3 - объектные привилегии
DENY RESOURCE TO user1 - системные привилегии