как сменить владельца табличек ?
Модератор: kdv
как сменить владельца табличек ?
вот как dbowner - знаю . а владельца табличек и процедур - нет .
задача
волею судеб , нужно из ХП менять description у таблички . и не под sysdba . а никак , пока под этим пользователем табличку сам не создашь .
это часть задачи . в принципе , достаточная . а вот вторая часть - пользователь может быть не один . подозреваю , что на ходу дёргать owner не получится .
задача
волею судеб , нужно из ХП менять description у таблички . и не под sysdba . а никак , пока под этим пользователем табличку сам не создашь .
это часть задачи . в принципе , достаточная . а вот вторая часть - пользователь может быть не один . подозреваю , что на ходу дёргать owner не получится .
создаём процедуру под sysdba и описание ей правим .hvlad писал(а):Права процедуре давать пробовал ?
Код: Выделить всё
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.
в ibexpert все необходимые права зелёненькие . tstuser - свежесозданный юзер . у меня руки кривые ?
более того , если tstuser в эксперте дать все права на всё (включая галочку про системные таблицы) - эффект тот же .
два варианта , когда процедура работает
1. под sysdba
2. под пользователем , из-под которого процедура создавалась .
2й вариент не является решением проблемы , т.к. описание и у таблиц нужно менять . а вот их пересоздать не получится . база старая .
ps firebird 1.5.2
не совсем простым - сам клиент под своим логином ходит к базе (неравным sysdba) .hvlad писал(а):Может и нет, некогда этим заняться.n506 писал(а):что , нет методов ?
А зачем простым юзерам менять description таблицам ?
в общем , вот так придумалось
Код: Выделить всё
update rdb$relations
set rdb$owner_name='NEW_USER'
WHERE
not (rdb$relation_name starting 'RDB$')