Чем выполнить GRANT из Delphi?

IBX, FIBPlus, UIB, ADO, .Net и прочее-прочее-прочее, в общем все, что относится к созданию приложений, работающих с InterBase, Firebird и Yaffil - клиент-серверных, трехзвенных, консольных и т.п.

Модератор: kdv

Ответить
Moto
Сообщения: 6
Зарегистрирован: 06 июн 2008, 12:59

Чем выполнить GRANT из Delphi?

Сообщение Moto » 17 июл 2008, 08:01

Всем привет. Подскажите пожалуйста как можно из программы выполнить Grant? У меня есть БД (FireBird 1.5), Delphi2006 c компонентами IBase. В программе при помощи IBSecurityService я завожу юзера на сервере, как запустить GRANT оттудаже из программы? Т.е. какой компонентой воспользоваться? Например я пробовал IBSQL таким образом:

IBTr_gr.Active := True;
IBSQL_gr.SQL.Text := 'GRANT ALL ON AKTS TO NEW_USER;';
IBSQL_gr.ExecQuery;
IBTr_gr.Commit;

так вот вроде ни на что не ругается, но юзепу NEW_USER никакие права не добавляются, видимо чего-то не поимаю.....

з.ы. при помощи FIBPlus компонент все работало на ура, дурдом какой-то....

з.з.ы Пробовал использовать IBScript, никакого эффекта, такое чувство что коммит не проходит. Если я намеренно делаю ошибку и даю GRANT на несуществующую таблицу, то при выполнении вылетает ошибка, т.е. GRANT выполняется, но не коммитится, хотя везде указана транзакция IBTr_gr, да она только для этого и используется......... ниид хелп.....

Moto
Сообщения: 6
Зарегистрирован: 06 июн 2008, 12:59

Сообщение Moto » 17 июл 2008, 10:33

:) Оказывается все отрабатывалось и коммителось правильно, это у меня IBExpert чего тормозил, непонятно зачем там кнопка рефреш, если рефреш происходит только после того как переконнектишься к серваку, вот блин пол дня потерял.....

Тут вот еще подвопрос, может он и не совсем корректный, но все же, как нибудь можно написать чтобы все гранты добавились на все объекты БД? Ну что-то типа 'GRANT ALL ON ALL TO USER', а то в это же IBExpert есть кнопулина Grant All to All а как такой команду написать???

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 17 июл 2008, 11:07

Moto писал(а): Ну что-то типа 'GRANT ALL ON ALL TO USER', а то в это же IBExpert есть кнопулина Grant All to All а как такой команду написать???
нет такой команды, эксперт выполняем просто кучу простых грантов, как получить список таблиц читай на сайте.

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Сообщение Tonal » 17 июл 2008, 11:11

Вот интересно, зачем создавать пользователей если даёшь им все права на всё?

Может проще из под sysdba всем ходить? :-)

WildSery
Заслуженный разработчик
Сообщения: 1738
Зарегистрирован: 05 июн 2006, 16:19

Сообщение WildSery » 17 июл 2008, 11:48

Tonal писал(а):Может проще из под sysdba всем ходить? :-)
Тогда базу в шатдаун фиг переведёшь раньше 2-ки, какая-нибудь зараза будет ломиться.

Attid
Спец
Сообщения: 377
Зарегистрирован: 14 ноя 2006, 09:58

Сообщение Attid » 17 июл 2008, 12:03

Tonal писал(а):Вот интересно, зачем создавать пользователей если даёшь им все права на всё?

Может проще из под sysdba всем ходить? :-)
нефиг вообще под сисдба работать.


и сисдба может ко всем БД конектится, а выделеный юзер только к выделеной БД к примеру.

Tonal
Сообщения: 104
Зарегистрирован: 30 сен 2007, 13:42

Сообщение Tonal » 17 июл 2008, 14:18

Эт всё правильно.

Я имел в виду то, что если заводятся пользователь и ему сразу же даются все права, то не проще ли завести одного, разрешить ему всё и ходить всем скопом под ним.
Т.е. похоже что в консерватории ен всё в порядке... :-)

Merlin
Динозавр IB/FB
Сообщения: 1502
Зарегистрирован: 27 окт 2004, 11:44

Сообщение Merlin » 17 июл 2008, 14:35

Tonal писал(а): Я имел в виду то, что если заводятся пользователь и ему сразу же даются все права, то не проще ли завести одного, разрешить ему всё и ходить всем скопом под ним.
Вообще-то его фамилия отродясь была PUBLIC.
Tonal писал(а): Т.е. похоже что в консерватории ен всё в порядке... :-)
Согласен с предыдущим оратором.

Moto
Сообщения: 6
Зарегистрирован: 06 июн 2008, 12:59

Сообщение Moto » 18 июл 2008, 02:13

Moto писал(а): Тут вот еще подвопрос, может он и не совсем корректный, но все же,
мне было просто интересно, я же в самом вопросе признался что он некорректный, просто мне было проще дать права на все, потом отнять 4-5 таблиц....

спасибо за поддержку, пойду читать как список объектов БД наковырять...

Ответить