Найти в Дзене
Oracle Developer

Права доступа в Oracle

Права доступа в 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 | Чатик 💬

Мини-курс Оптимизация: Быстрый старт 🚀