Здравствуйте!
Прошу помочь в решении проблемы. Это мой первый проект с БД. Когда начинал его писать было достаточно иметь правА полного доступа - права админа. Все работало. Сейчас добавил роли: ESTABLISH - полный доступ, и READER - только для чтения. Пользователи с первой ролью работают нормально, а для пользователей с ролью READER создается исключение:
class EIBInterBaseRoleError with message "no permission for delete/write access to table name".
Где необходимо подкрутить, на что обратить внимание, если при включении программы я не произвошу редактирование таблицы, а лишь чтение (а исключение вываливается сразу при запуске программы)?
Спасибо!
PS: просто затык какой-то.
Вопрос по использованию ролей.
Модератор: kdv
скорее всего проблема в том, что например IBDataSet, если там прописаны все запросы, в том числе и на delete, пытается сделать им prepare. А сервер при отсутствии прав на это действие посылает.
Вопрос упирается в используемые компоненты, и их версию. для ibx вроде где то было исправление этой проблемы.
Вопрос упирается в используемые компоненты, и их версию. для ibx вроде где то было исправление этой проблемы.
Именно так: (http://ibase.ru/devinfo/ibx.htm)
"...Для статических запросов вызов Prepare необязателен - компонент сам его выполнит автоматически, если Prepare не был вызван."
Зашел под пользователем с правами только для чтения. Перед DataSet->Active выполнил обнуление DeleteSQL - все стало на свои места, исключения не схватываются.
Часть нервных клеток спасена.
Большое спасибо.
"...Для статических запросов вызов Prepare необязателен - компонент сам его выполнит автоматически, если Prepare не был вызван."
Зашел под пользователем с правами только для чтения. Перед DataSet->Active выполнил обнуление DeleteSQL - все стало на свои места, исключения не схватываются.
Часть нервных клеток спасена.
