Права доступа в Oracle💥
Друзья, всем привет!
С вами Костя Андронов 👋
И это мой первый технический пост на канале. Сегодня разберёмся с правами доступа в Oracle💥
🔐 Привилегии в Oracle делятся на 2 типа
1️⃣ Системные — дают возможность выполнять действия в БД в целом.
Пример:
grant create table to HR;
Позволяет создавать таблицы пользователю HR.
Где посмотреть детали:
👉Вью DBA_SYS_PRIVS - содержит информацию о всех выданных системных привилегиях
Кто выдаёт/забирает:
• те, кому выдали привилегию с опцией ADMIN OPTION
• те, у кого есть привилегия GRANT ANY PRIVILEGE
2️⃣ Объектные — управляют доступом к конкретным объектам (таблицам, представлениям и т.д.)
Пример:
grant select on HR.DEPARTMENTS to USR;
Даёт право читать данные из этой таблицы.
Где посмотреть детали:
👉 Вью DBA_TAB_PRIVS - содержит информацию о всех выданных объектных привилегиях
Кто выдаёт/забирает?
• владелец объекта
• те, у кого есть право GRANT ANY OBJECT PRIVILEGE
• те, кому выдали привилегию с опцией WITH GRANT OPTION
А теперь представим ситуацию:
Создали новую таблицу, как выдать права:
– бизнес-пользователям — только чтение
– разработчикам — все DML операции
Выдавать вручную каждому?
❌ Долго и неудобно.
✅ Решение — роли. Это набор привилегий, который можно назначать пользователям (и даже другим ролям).
create read_only_role;
create dev_role;
grant read_only_role to busines_user;
grant read_only_role to dev_role;
grant dev_role to dev_user;
Каждый получает ровно то, что ему нужно — и не больше 🔥
Выдать права на новую таблицу можно всем пользователям в 2 команды:
grant select on tst_table to read_only_role;
grant insert, update, delete on tst_table to dev_role;
Если интересно подробнее узнать о правах доступа в Oracle, то ставьте 👍
#oracle #backendpro #теория #grant #права #Konstantin_Andronov
Канал Oracle Developer | Чатик 💬
Мини-курс Оптимизация: Быстрый старт 🚀