Вопрос по использованию ролей.

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

Модератор: kdv

Ответить
Шмель
Сообщения: 17
Зарегистрирован: 11 май 2006, 20:48

Вопрос по использованию ролей.

Сообщение Шмель » 13 июл 2006, 07:36

Здравствуйте!
Прошу помочь в решении проблемы. Это мой первый проект с БД. Когда начинал его писать было достаточно иметь правА полного доступа - права админа. Все работало. Сейчас добавил роли: ESTABLISH - полный доступ, и READER - только для чтения. Пользователи с первой ролью работают нормально, а для пользователей с ролью READER создается исключение:
class EIBInterBaseRoleError with message "no permission for delete/write access to table name".
Где необходимо подкрутить, на что обратить внимание, если при включении программы я не произвошу редактирование таблицы, а лишь чтение (а исключение вываливается сразу при запуске программы)?
Спасибо!
PS: просто затык какой-то.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 июл 2006, 09:19

скорее всего проблема в том, что например IBDataSet, если там прописаны все запросы, в том числе и на delete, пытается сделать им prepare. А сервер при отсутствии прав на это действие посылает.
Вопрос упирается в используемые компоненты, и их версию. для ibx вроде где то было исправление этой проблемы.

Шмель
Сообщения: 17
Зарегистрирован: 11 май 2006, 20:48

Сообщение Шмель » 13 июл 2006, 11:18

Именно так: (http://ibase.ru/devinfo/ibx.htm)
"...Для статических запросов вызов Prepare необязателен - компонент сам его выполнит автоматически, если Prepare не был вызван."
Зашел под пользователем с правами только для чтения. Перед DataSet->Active выполнил обнуление DeleteSQL - все стало на свои места, исключения не схватываются.
Часть нервных клеток спасена. :) Большое спасибо.

kdv
Forum Admin
Сообщения: 6595
Зарегистрирован: 25 окт 2004, 18:07

Сообщение kdv » 13 июл 2006, 13:17

посмотри на сайте, что-то было по поводу исправления IBX в этом плане. То есть, если при неявном prepare компоненту пришла такая ошибка, то он ее или должен проглотить, или как то ... в общем, из компонент такая ошибка должна вылезать только при execute (по идее).

Ответить