Страница 1 из 1
как сменить владельца табличек ?
Добавлено: 10 окт 2005, 23:41
n506
вот как dbowner - знаю . а владельца табличек и процедур - нет .
задача
волею судеб , нужно из ХП менять description у таблички . и не под sysdba . а никак , пока под этим пользователем табличку сам не создашь .
это часть задачи . в принципе , достаточная . а вот вторая часть - пользователь может быть не один . подозреваю , что на ходу дёргать owner не получится .
Добавлено: 11 окт 2005, 10:27
hvlad
Права процедуре давать пробовал ?
Добавлено: 11 окт 2005, 18:29
n506
hvlad писал(а):Права процедуре давать пробовал ?
создаём процедуру под sysdba и описание ей правим .
Код: Выделить всё
SET TERM ^ ;
CREATE PROCEDURE TST
AS
begin
update rdb$procedures set rdb$description=null where rdb$procedure_name='TST';
suspend;
end
^
SET TERM ; ^
commit work;
grant all on table rdb$procedures to procedure tst;
grant all on table rdb$procedures to user tstuser;
grant execute on PROCEDURE tst to user tstuser;
update rdb$procedures set rdb$description='tst' where rdb$procedure_name='TST';
commit work;
запускаем под tstuser
Код: Выделить всё
execute procedure TST
This user does not have privilege to perform this operation on this object.
no permission for protect access to PROCEDURE TST.
абсолютно та же картина с describe.
в ibexpert все необходимые права зелёненькие . tstuser - свежесозданный юзер . у меня руки кривые ?
более того , если tstuser в эксперте дать все права на всё (включая галочку про системные таблицы) - эффект тот же .
два варианта , когда процедура работает
1. под sysdba
2. под пользователем , из-под которого процедура создавалась .
2й вариент не является решением проблемы , т.к. описание и у таблиц нужно менять . а вот их пересоздать не получится . база старая .
ps firebird 1.5.2
Добавлено: 17 окт 2005, 20:12
n506
что , нет методов ?
Добавлено: 17 окт 2005, 23:00
hvlad
n506 писал(а):что , нет методов ?
Может и нет, некогда этим заняться.
А зачем простым юзерам менять description таблицам ?
Добавлено: 26 окт 2005, 18:42
n506
hvlad писал(а):n506 писал(а):что , нет методов ?
Может и нет, некогда этим заняться.
А зачем простым юзерам менять description таблицам ?
не совсем простым - сам клиент под своим логином ходит к базе (неравным sysdba) .
в общем , вот так придумалось
Код: Выделить всё
update rdb$relations
set rdb$owner_name='NEW_USER'
WHERE
not (rdb$relation_name starting 'RDB$')
вопрос - чем мне это грозит в перспективе ? я ж знаю - копаться руками в rdb$ - нехорошо .