Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться с привилегиями в БД / 3 сообщений из 3, страница 1 из 1
12.08.2016, 00:36:33
    #39290675
MgOtIR
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с привилегиями в БД
Здравствуйте!
Помогите пожалуйста понять, почему работает 0_о. Ситуация следующая.

Имею базу от oracle E-Business Suite
В этой базе (может кто знает) есть схема APPS в которой лежат все пакеты с API функциями для ОЕБСа а также синонимы на таблицы и вьюхи из других схем, необходимые для работы этих функций.

Есть там необходимый мне пакет HR_EMPLOYEE_API, на него даны гранты на execute ТОЛЬКО для роли HR_SECURE_USER:

Код: plsql
1.
select grantee from dba_tab_privs where table_name = 'HR_EMPLOYEE_API'  and owner = 'APPS' and PRIVILEGE = 'EXECUTE'


Результат
HR_SECURE_USER

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Я создаю нового пользоветеля БД
CREATE USER newtest 
    IDENTIFIED BY pwd
ALTER USER "NEWTEST"
DEFAULT TABLESPACE "SYSTEM"
TEMPORARY TABLESPACE "TEMP"
ACCOUNT UNLOCK ;
GRANT create session TO newtest;



И этот новый пользователь может выполнять процедуры из HR_EMPLOYEE_API без выдачи ему дополнительных прав. Как такое может быть? Каким образом это реализовано? Куда смотреть?

Большое спасибо за ответы.
...
Рейтинг: 0 / 0
12.08.2016, 08:34:08
    #39290737
dba123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с привилегиями в БД
MgOtIR,

Возможно HR_SECURE_USER - это application secure role
Её не на грантовать пользователю, процедура сама проверит кто вы и какие привилегии вам нужны.

http://docs.oracle.com/database/121/DBSEG/app_devs.htm#DBSEG146 Create the security application role as follows:

1.
Код: plsql
1.
CREATE ROLE hr_admin IDENTIFIED USING sec_mgr.hr_admin_role_check;


This statement indicates the following:

-The role hr_admin to be created is a secure application role.

-The role can only be enabled by modules defined inside the PL/SQL procedure sec_mgr.hr_admin_role_check. At this stage, this procedure does not need to exist;
"Step 2: Create a PL/SQL Package to Define the Access Policy for the Application" explains how to create the package or procedure.

2. Grant the security application role the privileges you would normally associate with this role.
For example, to grant the hr_admin role SELECT, INSERT, UPDATE, and DELETE privileges on the HR.EMPLOYEES table, you enter the following statement:
Код: plsql
1.
GRANT SELECT, INSERT, UPDATE, DELETE ON HR.EMPLOYEES TO hr_admin;


Do not grant the role directly to the user. The PL/SQL procedure or package does that for you, assuming the user passes its security policies.
...
Рейтинг: 0 / 0
12.08.2016, 08:45:07
    #39290739
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите разобраться с привилегиями в БД
MgOtIR,

Возможно HR_SECURE_USER грантована роли PUBLIC.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Помогите разобраться с привилегиями в БД / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]