Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет? / 17 сообщений из 17, страница 1 из 1
28.08.2013, 19:10
    #38380296
ORAngutang
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
а то по соображениям безопасности такое хотелось бы...

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

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

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

Спасибо.
...
Рейтинг: 0 / 0
29.08.2013, 10:59
    #38380696
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
реализовать функционал "совершенно опредённой процедуры" в вызываемой процедуре не получится?
...
Рейтинг: 0 / 0
29.08.2013, 11:21
    #38380741
Валерий Юринский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
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
29.08.2013, 11:36
    #38380771
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
Валерий ЮринскийДля 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
29.08.2013, 11:51
    #38380788
alex-ls
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
Валерий ЮринскийПереходите на новую версию СУБД Oracle, и жить станет веселее! :-)
это четкое описание! а хотелось бы скучнее многим ДБА...
...
Рейтинг: 0 / 0
29.08.2013, 12:28
    #38380878
esstepanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
Код: 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
29.08.2013, 12:34
    #38380902
Валерий Юринский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
esstepanovВалерий ЮринскийПереходите на новую версию СУБД Oracle, и жить станет веселее! :-)Вы пока начинайте, мы присоединимся к вам немного позднее :)
Вместе с нашими партнерами мы этот процесс уже начали... :-)
...
Рейтинг: 0 / 0
29.08.2013, 12:46
    #38380926
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
andreymx..
1. а как насчет конкретной процедуры конкретного пакета? Ведь она не является отдельным объектом?
2. скомпилится ли get_test, если дропнут account_pkg? И что в этом случае будет с пакетом, в котором прописана get_test?
..
1. а вот и думать надо при распределении процедур по пакетам, не про возвышенное (или приниженное ), а про права
2. грантуемой посредством ACCESSIBLE BY программной единице совершенно пофиг существуют ли объекты из списка кому
(а валидны ли они - тем более пофиг)
2.2
Код: plsql
1.
 PLS-00904: недостаточно привилегий для доступа к объекту ЛЯЛЯ
...
Рейтинг: 0 / 0
29.08.2013, 12:54
    #38380944
ten
ten
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
guest_Svetlanka,
Например, так.
Правда следует отметить, что стек вызовов все равно придется самостоятельно проверять.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.01.2017, 07:52
    #39381992
IHmG
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
--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
11.01.2017, 08:36
    #39382005
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
а вот как определить, вызвана ли моя PL/SQL-процедура из конкретной процедуры или из нет?
ORAngutangа то по соображениям безопасности такое хотелось бы...

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


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