Права в триггерах
-
- Сообщения: 7
- Зарегистрирован: 12 окт 2009, 09:20
Права в триггерах
Добрый день
Столкнулся с следующей проблемой
Есть робот, который выполняет действия, которые планируются пользователем (в частности отправка уведомлений по email)
Робот подключается с ограниченными правами и соответственно имеет права только там где делает отметки
После установки отметки производится изменение одного поля в 2х таблицах, в зависимости от условий.
При отработке оказалось что роботу потребовались права на другие таблицы, которые присутствуют в триггерах.
Даже если я в начале триггеров обновления ставлю "exit" - это ничего не решает, как будто триггеры срабатывают полностью и обрабатывают прочие таблицы
Роботу требуется всего-то изменить 2 поля, и я не хочу давать роботу права на все таблицы на которые ссылаются триггеры причем не только в этих таблицах, но и далее по ступеням
Как можно решить такую проблему?
Сервер: FireBird-2.1.3.18185
Столкнулся с следующей проблемой
Есть робот, который выполняет действия, которые планируются пользователем (в частности отправка уведомлений по email)
Робот подключается с ограниченными правами и соответственно имеет права только там где делает отметки
После установки отметки производится изменение одного поля в 2х таблицах, в зависимости от условий.
При отработке оказалось что роботу потребовались права на другие таблицы, которые присутствуют в триггерах.
Даже если я в начале триггеров обновления ставлю "exit" - это ничего не решает, как будто триггеры срабатывают полностью и обрабатывают прочие таблицы
Роботу требуется всего-то изменить 2 поля, и я не хочу давать роботу права на все таблицы на которые ссылаются триггеры причем не только в этих таблицах, но и далее по ступеням
Как можно решить такую проблему?
Сервер: FireBird-2.1.3.18185
Re: Права в триггерах
права в триггерах и процедурах проверяются для ВСЕХ используемых в них объектах, ДО выполнения триггера и процедуры.
не даете права роботу, дайте права триггеру.
не даете права роботу, дайте права триггеру.
Код: Выделить всё
GRANT <privileges> ON [TABLE] {tablename | viewname}
TO {<object> | <userlist> | GROUP UNIX_group}
| EXECUTE ON PROCEDURE procname TO {<object> | <userlist>}
| <role_granted> TO {PUBLIC | <role_grantee_list>};
<privileges> = {ALL [PRIVILEGES] | <privilege_list>}
<privilege_list> = SELECT
| DELETE
| INSERT
| UPDATE [(col [, col …])]
| REFERENCES [(col [, col …])]
[, <privilege_list> …]
<object> = PROCEDURE procname
| TRIGGER trigname
| VIEW viewname
| PUBLIC
[, <object> …]
<userlist> = [USER] username
| rolename
| Unix_user}
[, <userlist> …]
[WITH GRANT OPTION]
<role_granted> = rolename [, rolename …]
-
- Сообщения: 7
- Зарегистрирован: 12 окт 2009, 09:20
Re: Права в триггерах
я тоже думал что так надо сделать и ради эксперимента, дал все права всем триггерам, на первую таблицу на которую ругаются,kdv писал(а):права в триггерах и процедурах проверяются для ВСЕХ используемых в них объектах, ДО выполнения триггера и процедуры.
не даете права роботу, дайте права триггеру.
никакого эффекта..... "This user does not have privilege...."
уже не знаю что и думать...
-
- Сообщения: 7
- Зарегистрирован: 12 окт 2009, 09:20
Re: Права в триггерах
Вроде решил проблему, но мне кажется косячно..
Оказалось что если триггер использует таблицу только для обновления, то ему зачем-то требуются права на select...
добавил всем обновляющим триггерам права на select и все заработало
странно...
Оказалось что если триггер использует таблицу только для обновления, то ему зачем-то требуются права на select...
добавил всем обновляющим триггерам права на select и все заработало
странно...
-
- Сообщения: 7
- Зарегистрирован: 12 окт 2009, 09:20
Re: Права в триггерах
О как... спасибоdimitr писал(а):баян, однако: http://tracker.firebirdsql.org/browse/CORE-136