Страница 1 из 1

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

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

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

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

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