powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
17 сообщений из 17, страница 1 из 1
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380296
ORAngutang
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а то по соображениям безопасности такое хотелось бы...

Т.е. процедурга грантована какой-то схеме, но оттуда она должна вызываться только из совершенно опредённой процедуры - остальное крайне не желательно!

____________________________________________________________
сейчас работаю на: Oracle 11.2.0.2.0, 64bit, standard edition, OU-Linux.
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380303
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORAngutang,

в 12 оракле сабж. реализовали культурно.
до 12 - можно покопаться в стеке вызовов
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380307
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380311
Фотография --Eugene--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380595
ten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORAngutang,
А просто запретить вызов из других мест не подойдет?
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380676
guest_Svetlanka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tenORAngutang,
А просто запретить вызов из других мест не подойдет?
А как дать доступ на вызов конкретно одной определенной процедуре? И в тоже время запретить вызов из других объектов этой же схемы?

Спасибо.
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380696
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
реализовать функционал "совершенно опредённой процедуры" в вызываемой процедуре не получится?
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380741
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORAngutangа то по соображениям безопасности такое хотелось бы...

Т.е. процедурга грантована какой-то схеме, но оттуда она должна вызываться только из совершенно опредённой процедуры - остальное крайне не желательно!
В Oracle Database 12c это возможно:
из презентации Игоря Мельникова (oracle)
Явное указание мест вызова PL/SQL-объектов

В PL/SQL 12c есть фраза ACCESSIBLE BY

Для PL/SQL-объекта (типа, пакета, процедуры, функции) можно указать имена других PL/SQL-объектов, откуда они могут вызываться:
- В остальных PL/SQL-объектах вызов запрещен!
- В случае, если вызывающие объекты не указаны, то вызов возможен везде (поведение аналогичное до 12с)

Код: plsql
1.
2.
3.
4.
5.
6.
CREATE OR REPLACE FUNCTION get_test RETURN VARCHAR2 
  ACCESSIBLE BY (TYPE TAccount, PACKAGE account_pkg) 
IS
BEGIN
  return 'Dummy';
END;



Переходите на новую версию СУБД Oracle, и жить станет веселее! :-)
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380771
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий ЮринскийДля PL/SQL-объекта (типа, пакета, процедуры, функции) можно указать имена других PL/SQL-объектов, откуда они могут вызываться:
- В остальных PL/SQL-объектах вызов запрещен!
- В случае, если вызывающие объекты не указаны, то вызов возможен везде (поведение аналогичное до 12с)

Код: plsql
1.
2.
CREATE OR REPLACE FUNCTION get_test RETURN VARCHAR2 
  ACCESSIBLE BY (TYPE TAccount, PACKAGE account_pkg) 


1. а как насчет конкретной процедуры конкретного пакета? Ведь она не является отдельным объектом?
2. скомпилится ли get_test, если дропнут account_pkg? И что в этом случае будет с пакетом, в котором прописана get_test?


Валерий ЮринскийПереходите на новую версию СУБД Oracle, и жить станет веселее! :-)не скучнее - это точно
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380788
alex-ls
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Валерий ЮринскийПереходите на новую версию СУБД Oracle, и жить станет веселее! :-)
это четкое описание! а хотелось бы скучнее многим ДБА...
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380878
esstepanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
[/SRC][quot Валерий Юринский][quot ORAngutang]а то по соображениям безопасности такое хотелось бы...

Т.е. процедурга грантована какой-то схеме, но оттуда она должна вызываться только из совершенно опредённой процедуры - остальное крайне не желательно![/quot]
В Oracle Database 12c это возможно:
[quot из презентации Игоря Мельникова (oracle)][SIZE=2]
Явное указание мест вызова PL/SQL-объектов

В PL/SQL 12c есть фраза ACCESSIBLE BY 

Для PL/SQL-объекта (типа, пакета, процедуры, функции) можно указать имена других PL/SQL-объектов, откуда они могут вызываться:
- В остальных PL/SQL-объектах вызов запрещен!
- В случае, если вызывающие объекты не указаны, то вызов возможен везде (поведение аналогичное до 12с)

[src oracle]
CREATE OR REPLACE FUNCTION get_test RETURN VARCHAR2 
  ACCESSIBLE BY (TYPE TAccount, PACKAGE account_pkg) 
IS
BEGIN
  return 'Dummy';
END;

[/quot]
Переходите на новую версию СУБД Oracle, и жить станет веселее! :-)[/quot]




Вы пока начинайте, мы присоединимся к вам немного позднее :)
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380902
Фотография Валерий Юринский
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
esstepanovВалерий ЮринскийПереходите на новую версию СУБД Oracle, и жить станет веселее! :-)Вы пока начинайте, мы присоединимся к вам немного позднее :)
Вместе с нашими партнерами мы этот процесс уже начали... :-)
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380926
Фотография orawish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx..
1. а как насчет конкретной процедуры конкретного пакета? Ведь она не является отдельным объектом?
2. скомпилится ли get_test, если дропнут account_pkg? И что в этом случае будет с пакетом, в котором прописана get_test?
..
1. а вот и думать надо при распределении процедур по пакетам, не про возвышенное (или приниженное ), а про права
2. грантуемой посредством ACCESSIBLE BY программной единице совершенно пофиг существуют ли объекты из списка кому
(а валидны ли они - тем более пофиг)
2.2
Код: plsql
1.
 PLS-00904: недостаточно привилегий для доступа к объекту ЛЯЛЯ
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #38380944
ten
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
guest_Svetlanka,
Например, так.
Правда следует отметить, что стек вызовов все равно придется самостоятельно проверять.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #39381992
Фотография IHmG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
--Eugene--,
OWA_UTIL ... что это за пакет такой? на сколько он актуальный?

тут написано:

The OWA_UTIL package contains utility subprograms for performing operations such as getting the value of CGI environment variables, printing the data that is returned to the client, and printing the results of a query in an HTML table.


Overview
The OWA_UTIL package contains three types of utility subprograms.

Dynamic SQL Utilities enable you to produce pages with dynamically generated SQL code.

HTML utilities enable you to retrieve the values of CGI environment variables and perform URL redirects.

Date utilities enable correct date-handling. Date values are simple strings in HTML, but are treated as a data type by the Oracle database.


честно говоря мало что понял :) причем тут оракл и HTML? и самое главное каким боком упомянутая Вами WHO_CALLED_ME?
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #39382005
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORAngutangа то по соображениям безопасности такое хотелось бы...

Т.е. процедурга грантована какой-то схеме, но оттуда она должна вызываться только из совершенно опредённой процедуры - остальное крайне не желательно!такая безопасность весьма призрачна, если у вас нет возможности контролировать объект, которому вы хотите выдавать права - например, завтра его перекомпилируют, оставив только название
...
Рейтинг: 0 / 0
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
    #39382011
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymxORAngutangТ.е. процедурга грантована какой-то схеме, но оттуда она должна вызываться только из совершенно опредённой процедуры - остальное крайне не желательно!такая безопасность весьма призрачна, если у вас нет возможности контролировать объект, которому вы хотите выдавать права - например, завтра его перекомпилируют, оставив только названиеИ тем не менее RTFM New in 12c: ACCESSIBLE BY Clause (FAQ)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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