Процедура вызова из другой схемы, которая имеет привилегию ACL, но вызывающий не имеет

#oracle #plsql #oracle12c #acl

Вопрос:

Одна схема в нашей базе данных имеет права доступа ACL к URL-адресу и может отправлять запросы по этому URL-адресу. Если я сейчас напишу процедуру в этой схеме, которая отправляет запрос и предоставляет другой схеме возможность выполнить эту процедуру, будет ли она работать или второй схеме также требуется привилегия ACL?

Я прошу спланировать необходимый подход к этой теме, так как мне нужно написать пакет во второй схеме.

Комментарии:

1. Не спрашивайте, сработает ли это, напишите небольшой тестовый пример. Если это не удастся, опубликуйте это вместе с ошибкой. Если это сработает, то у вас есть свой ответ. Сообщество все равно попросит вас опубликовать то, что вы пробовали.

2. Хорошо, спасибо. Да, это то, что я сделал сейчас, в любом случае, сейчас, но я буду помнить это.

Ответ №1:

Если я правильно понял, похоже, что по умолчанию свойству authid присвоены права определителя. Это должно означать, что он выполняется с правами владельца схемы.

И это действительно было так!

Рефренс:

  1. https://docs.oracle.com/database/121/DBSEG/dr_ir.htm#DBSEG658
  2. https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/create_package.htm#LNPLS01371
  3. https://docs.oracle.com/cd/B28359_01/appdev.111/b28370/subprograms.htm#LNPLS00809