Модераторы: LSD
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Доступ к пакетам, доступ к body пакета 
:(
    Опции темы
Кану
  Дата 10.11.2005, 01:23 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Есть штука, именуемая grant execute позволяющая одному пользователю работать с пакетом, написанным другим пользователем. Точнее с опубликованными методами. Вопрос: как дать другому юзеру доступ к Body пакета. К исходному коду? Если есть варианты: как только на чтение, как на чтение-редактирование.
  Вверх
LSD
Дата 10.11.2005, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15717
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 537



Цитата
Вопрос: как дать другому юзеру доступ к Body пакета. К исходному коду? Если есть варианты: как только на чтение, как на чтение-редактирование.

Исходный код пакета доступен через представления user_source, all_source, dba_source. Сам код находится в словаре sys.source$ и руками туда вообще лучше не лазить. Исходный код процедуры меняется автоматом при ее пересоздании (create or replace).

Итого:
  • пользователь автоматом получает права на просмотр тела процедуры на которую у него есть право выполнения, избавиться от этого полностью нельзя. Можно либо отобрать у PUBLIC права на представление all_source, или wrap-ать тело пакета
  • чтобы именно изменить тело пакета, у пользователя должны быть права на sys.source$, но так делать очень не рекомендуется
  • пересоздать пакет (и соответсвенно изменить его тело) может любой пользователь с привилегией create any procedure



--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
Кану
Дата 11.11.2005, 01:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Уточню на всякий случай ситуацию на примере:
Два разработчика в команде. Один написал пакет, другому желателен доступ на редакторование к телу того же пакета.
Просто заморочка в том, что при гранте на выполнение можно видеть только spec пакета, а вот до body достучаться - фиг. В общем ясно в какую сторону лезть.

Такой момент еще: я где-то мимоходом видел грант на дебаг (debug) какие права он реально дает юзеру?
  Вверх
LSD
Дата 12.11.2005, 01:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15717
Регистрация: 24.3.2004
Где: Dublin

Репутация: 18
Всего: 537



Просмотреть исходники в другой схеме можно через dba_source, или если не хочешь давать пользователю доступ ко всем исходникам создай свой вьюер на основе dba_source.

Но это все ерунда, потому что единственный способ создать процедуру в другой схеме это дать пользователю привелегию create any procedure и тогда он сможет видеть весь код package-й без проблем через all_source.

В принципе можно создать package в другой схеме и без привелегии create any procedure, но это уже:
Цитата
Месье понимает толк в извращениях


Цитата
Такой момент еще: я где-то мимоходом видел грант на дебаг (debug) какие права он реально дает юзеру?

Да ничего такого, дебагинг процедур на PL/SQL, насчет Java не знаю надо уточнить.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Oracle"
Zloxa
LSD

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

  • при создании темы давайте ей осмысленное название, описывающее суть проблемы
  • указывайте используемую версию базы, способ соединения и язык программирования
  • при ошибках обязательно приводите код ошибки и сообщение сервера
  • приводите код в котором возникла ошибка, по возможности дайте тестовый пример демонстрирующий ошибку
  • при вставке кода используйте соответсвующие теги: [code=sql] [/code] для подсветки SQL и PL/SQL кода, [code=java] [/code] - для Java, и т.д.

  • документация по Oracle: 9i, 10g, 11g
  • книги по Oracle можно поискать здесь
  • действия модераторов можно обсудить здесь

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Zloxa, LSD.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Oracle | Следующая тема »


 




[ Время генерации скрипта: 0.0902 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.