RESOURCE в Oracle SQL — что означает системная роль и как управлять правами доступа

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

RESOURCE — это системная роль в Oracle Database, которая предоставляет базовые права для создания объектов базы данных, таких как таблицы, последовательности и процедуры. Её часто назначают разработчикам или приложениям, которым нужно создавать объекты в своей схеме.

Эта роль входит в стандартные предопределённые роли Oracle, наряду с CONNECT и DBA.


🔤 Написание

Назначение роли:

sql
GRANT RESOURCE TO имя_пользователя;

Проверка ролей пользователя:

sql
SELECT * FROM dba_role_privs
WHERE grantee = 'ИМЯ_ПОЛЬЗОВАТЕЛЯ';

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

  • Выдача доступа на создание таблиц, индексов, процедур

  • Подготовка среды для разработчиков

  • Делегирование прав внутри проекта

  • Быстрая настройка пользователей для разработки

  • Комбинация с ролью CONNECT


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

1️⃣ Назначить роль пользователю

sql
GRANT RESOURCE TO dev_user;

2️⃣ Проверить роли пользователя

sql
SELECT granted_role
FROM dba_role_privs
WHERE grantee = 'DEV_USER';

3️⃣ Что даёт роль RESOURCE

sql
SELECT privilege
FROM role_sys_privs
WHERE role = 'RESOURCE';

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

  • CREATE TABLE

  • CREATE PROCEDURE

  • CREATE SEQUENCE


4️⃣ Создание таблицы после назначения

sql
-- Только после GRANT RESOURCE
CREATE TABLE test_table (
id NUMBER PRIMARY KEY
);

5️⃣ Отзыв роли RESOURCE

sql
REVOKE RESOURCE FROM dev_user;

6️⃣ Создание последовательности

sql
CREATE SEQUENCE test_seq START WITH 1 INCREMENT BY 1;

7️⃣ Создание процедуры

plsql
CREATE OR REPLACE PROCEDURE hello IS
BEGIN
DBMS_OUTPUT.PUT_LINE('Привет!');
END;

8️⃣ Назначить одновременно RESOURCE и CONNECT

sql
GRANT CONNECT, RESOURCE TO app_user;

9️⃣ Проверка всех системных привилегий роли

sql
SELECT * FROM role_sys_privs
WHERE role = 'RESOURCE';

🔟 Создание пользователя с ролью RESOURCE

sql
CREATE USER dev_user IDENTIFIED BY devpass;
GRANT CONNECT, RESOURCE TO dev_user;

🧩 Заключение

Роль RESOURCE — это универсальный инструмент для предоставления базовых прав разработчику или приложению. Она даёт возможность создавать объекты в схеме без необходимости настраивать каждое право вручную.

💡 Запомни:

  • Доступ на CREATE TABLE, CREATE PROCEDURE, CREATE SEQUENCE

  • Часто используется в сочетании с CONNECT

  • Применяется при создании сред для разработки

  • Упрощает управление правами доступа в Oracle


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

RENAME в Oracle SQL — как переименовывать таблицы и объекты без ошибок


 

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