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

Откуда: от махмуда
Сообщений: 10502
Такая проблема, есть админский юсер SYSADM, есть юсер LOGUSER у которого таблицы аудита.
У SYSADM пакет на создание таблиц аудита в схеме LOGUSER. Т.к. используется динамический SQL гранты SYSADMу нужно давать явно, а не через роль. Но застопорился на Grant references.
Попытка выполнить под SYSADMом
execute immediate 'grant references on LOGUSER.TEST_TABLE to SYSADM'; 
приводит к ORA-01031: insufficient privileges. Нужно выполнить под LOGUSER но как бы это в пакет принадлизащий SYSADMу запихать?
6 июл 07, 11:32    [4359398]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
barrabas
Попытка выполнить под SYSADMом
execute immediate 'grant references on LOGUSER.TEST_TABLE to SYSADM'; 
Не очень понятно, сам себе пытается грантовать?
6 июл 07, 11:37    [4359431]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
Jannny
barrabas
Попытка выполнить под SYSADMом
execute immediate 'grant references on LOGUSER.TEST_TABLE to SYSADM'; 
Не очень понятно, сам себе пытается грантовать?

ну да тк. при динамическом SQL grantы выданне через роль не работают, приходится давать самому себе явные гранты на создание таблиц, триггеров и т.д.

Я тут подумал что возможно поможет процедура вызываемая с правами создателя
6 июл 07, 11:39    [4359446]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
ExtraSuperUltra
Member

Откуда: Москва
Сообщений: 299
Если я правильно понял, есть пользователь создающий таблицы не в своей схеме, а потом хочет дать себе права на них.
Во придумали! И кому такое надо.
6 июл 07, 11:43    [4359482]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
ExtraSuperUltra
Если я правильно понял, есть пользователь создающий таблицы не в своей схеме, а потом хочет дать себе права на них.
Во придумали! И кому такое надо.

правильно поняли, надо мне :)

Попробовал создать LOGUSERом процедуму в раздающую гранты сисадму
create or replace procedure LOGUSER.GrantReferencesOnTable_LogUser
   (vTableName   in  varchar2)
is 
begin
   execute immediate 'grant references on LOGUSER.'||vTableName||' to SYSADM';
end;
дал привелегии
grant execute on LOGUSER.GrantReferencesOnTable_LogUser  to SYSADM
/
по идее, если не указанно обратное, процедура должна вызваться с правами создателя, т.е. LOGUSERа, но при выполнении ее из под SYSADMа, ничего не получается. :(
6 июл 07, 12:01    [4359633]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
adb
Guest
Если уж у SYSADM есть create any table
Почему не дать select any table
Хотя конечно в некоторых случаях это не желетельно.
6 июл 07, 12:11    [4359720]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
Так что нереально сделать такую процедуру (которая создает не в своей схеме логовские таблицы, таблицы то создаются, а вот реверенсы нет :() чисто на pl/sql. Так и придется внешнее приложение делать, чтобы конектится под двумя юсерами, создать таблицу под SYSADM, дать привелегии под LOGUSER, доваить реверенсы и not nullы?
6 июл 07, 12:11    [4359721]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
Jannny
Member

Откуда: Спб
Сообщений: 6424
у LOGUSER есть право грантовать?
6 июл 07, 12:19    [4359767]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
ExtraSuperUltra
Member

Откуда: Москва
Сообщений: 299
Jannny
у LOGUSER есть право грантовать?


Он же Owner
6 июл 07, 12:21    [4359784]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
Ура! Получилось.
вобщем правильно я все сделал (с процедурой) просто у меня в одной из тестовых процедур осталась строка,забыл стереть просто, где SYSADM сам себе давал привелегии на референсы Логюзерских таблиц.
6 июл 07, 13:45    [4360450]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
Вот никак не пойму, когда создаем таблицу одним пользователем в чужой схеме

из под SYSADM
begin
   execute immediate 'create table LOGUSER.GEOMAP_L as select * from GEOMAP where 1=2';
end;     
таблица создается с чеками not null и никаких привелегий не просит (кроме явно данных создания таблицы которые SYSADM может дать сам себе), но когда я после хочу доваить поля с not null, помимо привелегий на изменение таблицы ему нужны привелении на референсы от пользователя LOGUSER (если поля без not null, то не нужно).
Почему он при создании таблицы их не просит, а при изменении просит?
Приходится извращатся с процедурой раздающей права от имени LOGUSER. :(
6 июл 07, 15:13    [4361119]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
Elic
Member

Откуда:
Сообщений: 29979
barrabas
помимо привелегий на изменение таблицы ему нужны привелении на референсы от пользователя LOGUSER (если поля без not null, то не нужно).
Вывод или наблюдение совершенно неверные.
RTFM Privileges Required to Create FOREIGN KEY Integrity Constraints (FAQ)
6 июл 07, 16:25    [4361648]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
barrabas
Member

Откуда: от махмуда
Сообщений: 10502
Elic
barrabas
помимо привелегий на изменение таблицы ему нужны привелении на референсы от пользователя LOGUSER (если поля без not null, то не нужно).
Вывод или наблюдение совершенно неверные.
RTFM Privileges Required to Create FOREIGN KEY Integrity Constraints (FAQ)

Да что было непонятное, делал тестовые таблицы в тестовой базе выдавалось сообщение о недостатке прав, начал тестировать на копии рабочей все работает нормально.
7 июл 07, 21:35    [4364142]     Ответить | Цитировать Сообщить модератору
 Re: динамически Grant references  [new]
Elic
Member

Откуда:
Сообщений: 29979
barrabas
Да что было непонятное, делал тестовые таблицы в тестовой базе выдавалось сообщение о недостатке прав, начал тестировать на копии рабочей все работает нормально.
И тут же начал делать выводы о несуществующих закономерностях?!
9 июл 07, 08:57    [4365616]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить