Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Пакеты и права  [new]
Carnivora
Member

Откуда:
Сообщений: 29
Привет всем,
можно ли не предоставляя права execute предоставить пользователю права для чтения всех пакетов конкретной схемы, но не всей базы?

Если можно то как?
31 авг 06, 10:02    [3074851]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
Что такое "чтение всех пакетов"? Если это чтение исходных текстов (непонятно для чего), то можно сделать view или процедуру, возвращающую ref cursor
31 авг 06, 10:19    [3074971]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
Carnivora
Member

Откуда:
Сообщений: 29
Да, я имел ввиду чтение исходных текстов, поподробнее про ref cursor можно?
31 авг 06, 10:43    [3075151]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
FAQ
https://www.sql.ru/faq/faq_topic.aspx?fid=384
31 авг 06, 10:47    [3075185]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
Carnivora
Member

Откуда:
Сообщений: 29
Да... разбираться долго придется, нету альтернатив или примера к данному refcursoru??
31 авг 06, 13:18    [3076502]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
contr
Member

Откуда:
Сообщений: 1909
Carnivora
Да... разбираться долго придется, нету альтернатив или примера к данному refcursoru??

view, Вам уже рекомендовали...
31 авг 06, 13:19    [3076512]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
Carnivora
Member

Откуда:
Сообщений: 29
Ясно, спасибо... сегодня тяжелый день
31 авг 06, 14:00    [3076868]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 10042
One way to grant user YYY ability to see user XXX package source:

1. Login as SYS
2. Issue:
CREATE OR REPLACE
  VIEW XXX_PACKAGE_SOURCE
    AS
      SELECT  *
        FROM  dba_source
        WHERE owner = 'XXX'
          AND type IN ('PACKAGE','PACKAGE BODY')
/
3. Issue:
GRANT SELECT ON XXX_PACKAGE_SOURCE TO YYY
/

Another way would be using CONTEXT.

SY.
31 авг 06, 18:52    [3078945]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
ANB_ANB
Member

Откуда:
Сообщений: 213
Эта. Круто под сисом то вьюхи генерить. В его же схеме . . .
31 авг 06, 19:04    [3078990]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
ANB_ANB
Member

Откуда:
Сообщений: 213
CREATE OR REPLACE VIEW v$package_source
AS
SELECT *
FROM user_source
WHERE TYPE IN ('PACKAGE', 'PACKAGE BODY');
/
GRANT SELECT ON v$package_source TO xxx;
/
Так можно ие под сисом . . .
1 сен 06, 10:16    [3080329]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
ANB_ANB
Member

Откуда:
Сообщений: 213
Обломчик. SY полностью прав.
1 сен 06, 10:33    [3080461]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
ANB_ANB
Member

Откуда:
Сообщений: 213
Однако все равно как то некузяво прямо в сисовую схему все кидать. Да и не всегда это удобно. Хотелось бы подобрать способ, позволяющий дать такой доступ из под хозяина схемы.
Я так понял, вся проблема в том, что вьюхи user_source и all_source проверяют доступ к этим пакетам на execute для текущего пользователя. Нет гранта -ничего не видно.
1 сен 06, 11:14    [3080800]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
tru55
Member

Откуда: СПб
Сообщений: 19790
ANB_ANB
Однако все равно как то некузяво прямо в сисовую схему все кидать. Да и не всегда это удобно. Хотелось бы подобрать способ, позволяющий дать такой доступ из под хозяина схемы.
Я так понял, вся проблема в том, что вьюхи user_source и all_source проверяют доступ к этим пакетам на execute для текущего пользователя. Нет гранта -ничего не видно.


скрипт catprc.sql
create or replace view USER_SOURCE
(NAME, TYPE, LINE, TEXT)
as
select o.name,
decode(o.type#, 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
               11, 'PACKAGE BODY', 12, 'TRIGGER', 13, 'TYPE', 14, 'TYPE BODY',
               'UNDEFINED'),
s.line, s.source
from sys.obj$ o, sys.source$ s
where o.obj# = s.obj#
  and o.type# in (7, 8, 9, 11, 12, 13, 14)
  and o.owner# = userenv('SCHEMAID')
union
select o.name, 'JAVA SOURCE', s.joxftlno, s.joxftsrc
from sys.obj$ o, x$joxfs s
where o.obj# = s.joxftobn
  and o.type# = 28
  and o.owner# = userenv('SCHEMAID')
1 сен 06, 11:21    [3080859]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
ANB_ANB
Member

Откуда:
Сообщений: 213
tru55
ANB_ANB
Однако все равно как то некузяво прямо в сисовую схему все кидать. Да и не всегда это удобно. Хотелось бы подобрать способ, позволяющий дать такой доступ из под хозяина схемы.
Я так понял, вся проблема в том, что вьюхи user_source и all_source проверяют доступ к этим пакетам на execute для текущего пользователя. Нет гранта -ничего не видно.


скрипт catprc.sql
create or replace view USER_SOURCE
(NAME, TYPE, LINE, TEXT)
as
select o.name,
decode(o.type#, 7, 'PROCEDURE', 8, 'FUNCTION', 9, 'PACKAGE',
               11, 'PACKAGE BODY', 12, 'TRIGGER', 13, 'TYPE', 14, 'TYPE BODY',
               'UNDEFINED'),
s.line, s.source
from sys.obj$ o, sys.source$ s
where o.obj# = s.obj#
  and o.type# in (7, 8, 9, 11, 12, 13, 14)
  and o.owner# = userenv('SCHEMAID')
union
select o.name, 'JAVA SOURCE', s.joxftlno, s.joxftsrc
from sys.obj$ o, x$joxfs s
where o.obj# = s.joxftobn
  and o.type# = 28
  and o.owner# = userenv('SCHEMAID')


Да смотрел я этот скрипт. Посему и вывод такой сделал.
1 сен 06, 11:31    [3080976]     Ответить | Цитировать Сообщить модератору
 Re: Пакеты и права  [new]
ANB_ANB
Member

Откуда:
Сообщений: 213
Во. Подобрал вариант :

из под сиса :

GRANT SELECT ON dba_source TO ANB with grant option;

(почему то grant DBA to ANB with admin option не помогает).

Из под ANB :

CREATE OR REPLACE VIEW v$package_source
AS
SELECT *
FROM dba_source
WHERE owner = 'ANB' and TYPE IN ('PACKAGE', 'PACKAGE BODY');
/
GRANT SELECT ON v$package_source TO test1;
/

Теперь без грантов на execute под test1 видны исходники пакетов ANB. И вьюха лежить в схеме ANB, что кузявее (по идее). Хотя без коннекта под сисом все равно не обошлось. И грант пришлось лишний дать.
1 сен 06, 11:37    [3081027]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить