Создать роль и предоставить привилегии этой роли - PullRequest
0 голосов
/ 23 января 2019

Основная цель заключается в создании отдельных ролей, таких как разработчики, тестировщики и другие, для индивидуального входа в базу данных Oracle.В настоящее время не осуществляется мониторинг и использование тех же учетных данных, которые приложение использует для запроса, что делает очень трудным мониторинг того, какие изменения были внесены и кто их сделал.

  1. создание роли разработчиков
  2. предоставление привилегий, таких как вставка, удаление, обновление, выбор ... разработчикам (роль)
  3. создание пользователей
  4. предоставление роли пользователям
  5. Назначение табличных пространств для индивидуального доступа пользователям с этими привилегиями.

Я попытался назначить роли для всех таблиц, но это не работает.

begin
    for x in (select object_name from all_objects where owner='app_owner' and object_type in ('TABLE','VIEW')) loop
        execute immediate 'GRANT select on app_owner.' || x.object_name || ' to developers';
    end loop;
end;
/

Выше SQL не предоставление привилегий роли (разработчикам).Однако, если я делаю грант индивидуально, это хорошо.

grant use of tablespace <tablespacename> to role;

Попытка выше все еще бесполезна.Есть мысли о том, как выполнить вышеуказанные требования?

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Код, который вы написали: близко , но недостаточно достаточно близко - регистр букв имеет значение.

                                                        THIS!
                                                        vvvvv
SQL> select object_name from all_objects where owner = 'scott' and object_type in ('TABLE', 'VIEW');

no rows selected

SQL> select object_name from all_objects where owner = 'SCOTT' and object_type in ('TABLE', 'VIEW');

OBJECT_NAME
------------------------------
V_SALGRADE
V_DEPT
V_BONUS
DEPT
EMP_VIEW_UPDT
EMP
0 голосов
/ 23 января 2019

Вы не можете разрешить использование табличного пространства для роли.Пользователям потребуется квота в табличном пространстве для создания объектов в табличном пространстве.Вы предоставляете квоту для CREATE USER или с помощью команды ALTER USER.Я не вижу ошибки в опубликованном PL / SQL для выдачи гранта, но у меня нет времени на редактирование и тестирование кода.Если вы запрашиваете у dba_tab_privs роль, вы видите ее?Помните ли вы, чтобы предоставить роль целевым пользователям?HTH - Марк Д Пауэлл -

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...