GRANT в Oracle SQL — как выдавать права на объекты и управлять доступом

🟢 GRANT в Oracle SQL. Введение

Oracle SQL — это не только про запросы, но и про управление доступом к объектам базы данных. Оператор GRANT используется для предоставления прав пользователям или ролям — например, на чтение таблицы, выполнение процедуры или создание объектов.

GRANT помогает:

  • Делегировать доступ без раскрытия всей базы

  • Контролировать безопасность

  • Гибко управлять ролями и пользователями


🔤 Написание

sql
GRANT привилегия [, ...] ON объект TO {пользователь | роль} [WITH GRANT OPTION];

Примеры привилегий:

  • SELECT, INSERT, UPDATE, DELETE

  • EXECUTE (для процедур и пакетов)

  • ALL (все привилегии)


🔄 Где используется

  • Доступ к таблицам между схемами

  • Выдача прав на выполнение функций и процедур

  • Назначение ролей

  • Права на создание, изменение и удаление объектов

  • В администрировании и безопасности


🧪 10 Примеров использования GRANT

1️⃣ Выдать SELECT для таблицы

sql
GRANT SELECT ON hr.employees TO analyst;

2️⃣ Выдать полный доступ

sql
GRANT ALL ON orders TO admin_user;

3️⃣ Выдать EXECUTE на процедуру

sql
GRANT EXECUTE ON process_order TO sales_user;

4️⃣ Выдать INSERT и UPDATE

sql
GRANT INSERT, UPDATE ON products TO warehouse_user;

5️⃣ С правом передачи доступа (WITH GRANT OPTION)

sql
GRANT SELECT ON departments TO team_lead WITH GRANT OPTION;

6️⃣ GRANT роли пользователю

sql
GRANT read_only TO new_employee;

7️⃣ Создание и назначение собственной роли

sql
CREATE ROLE report_writer;
GRANT SELECT ON reports TO report_writer;
GRANT report_writer TO user1;

8️⃣ Предоставление прав сразу нескольким пользователям

sql
GRANT SELECT ON sales TO user1, user2, user3;

9️⃣ Права на системный уровень

sql
GRANT CREATE TABLE TO junior_dev;

🔟 Проверка прав

sql
SELECT * FROM USER_TAB_PRIVS WHERE TABLE_NAME = 'EMPLOYEES';

🧩 Заключение

Оператор GRANT — незаменимый инструмент для контроля доступа в Oracle SQL. Он обеспечивает безопасность, делегирует полномочия и помогает управлять системой без избыточного риска.

💡 Запомни:

  • Можно выдавать как объектные, так и системные привилегии

  • WITH GRANT OPTION даёт право делиться доступом

  • Используется вместе с REVOKE для гибкого управления

  • Работает как напрямую, так и через роли


🔜 Следующая статья:

FUNCTION в Oracle SQL — как создавать и вызывать пользовательские функции


 

Понравилась статья? Поделиться с друзьями:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии