Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение прав и создание триггера / 25 сообщений из 26, страница 1 из 2
20.04.2015, 10:21
    #38940368
ArtDen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Не пойму в чём затык.

Есть пользователь CREATOR, который создаёт объекты базы и раздаёт всем права.

Есть пользователь REPLICATOR с ролью REPLICATORS, который пытается создать триггер на обновление

Код: sql
1.
2.
3.
4.
CREATE TRIGGER some_table_u FOR some_table
ACTIVE AFTER UPDATE POSITION 0
AS BEGIN
END



и получает сообщение об ошибке:
unsuccessful metadata update
DEFINE TRIGGER failed
no permission for control access to TABLE SOME_TABLE


При этом, если из под REPLICATOR-а запустить
Код: sql
1.
select * from some_table


то это нормально отрабатывает.

Привилегии на таблицу для роли REPLICATORS такие:
Код: sql
1.
2.
GRANT DELETE, INSERT, REFERENCES, SELECT, UPDATE
 ON some_table TO ROLE REPLICATORS;



Что я не учёл?
...
Рейтинг: 0 / 0
20.04.2015, 10:25
    #38940371
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
ArtDen,

триггер на таблицу может создать владелец таблицы, владелец БД, SYSDBA и пользователь с ролью RDB$ADMIN
...
Рейтинг: 0 / 0
20.04.2015, 10:31
    #38940378
ArtDen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Ясно. Тогда наверное прибью REPLICATOR-а с его ролью. А репликация базы буде проводится из под пользователя, создавшего базу. Видимо нечего зоопарк пользователей разводить :-)
...
Рейтинг: 0 / 0
20.04.2015, 10:34
    #38940389
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
ArtDen,

в чём проблема? Почему ты считаешь что пользователь REPLICATOR должен быть владельцем каких либо объектов? По мне это обычный юзер имеющий обычные привилегии, разве что расширенные для репликации, но уж никак не административными правами.
...
Рейтинг: 0 / 0
20.04.2015, 10:38
    #38940392
ArtDen
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Да нет проблемы. Просто упрощаю себе задачу )
...
Рейтинг: 0 / 0
20.04.2015, 11:00
    #38940411
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Hello, Artden!
You wrote on 20 апреля 2015 г. 10:58:25:

Artden> Да нет проблемы. Просто упрощаю себе задачу )
наивное заблуждение.

зы: мы с интересом наблюдаем за попыткой изобретать очередной
трехколесный велосипед с гексагональными ободами.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.04.2015, 11:03
    #38940413
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Мимопроходящийгексагональными
И откуда ты такие словечки знаешь...
...
Рейтинг: 0 / 0
20.04.2015, 19:02
    #38940987
Romanzek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Симонов Денис,

Я бы посоветовал сделать хранимую процедуру, которая создает необходимые триггеры, и дать на нее права REPLICATOR-у на выполнение.
...
Рейтинг: 0 / 0
20.04.2015, 19:07
    #38940988
Мимопроходящий
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
кАкая прЭлесть...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.04.2015, 19:22
    #38940999
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Romanzekхранимую процедуру, которая создает необходимые триггерысовет как минимум странный.
...
Рейтинг: 0 / 0
20.04.2015, 19:26
    #38941003
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Ivan_Pisarevsky,

да не написать процедуру автоматизирующую создание репликационных триггеров можно. А вот зачем давать на неё права REPLICATOR-у не понятно. Не должно быть у этого пользователя административных привилегий.
...
Рейтинг: 0 / 0
20.04.2015, 19:31
    #38941007
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Ivan_Pisarevskyсовет как минимум странный.
Чувствуется немецкая школа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.04.2015, 19:41
    #38941012
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Симонов ДенисНе должно быть у этого пользователя административных привилегий.
Только если он не замахнулся на репликацию DDL.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.04.2015, 19:44
    #38941016
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Dimitry Sibiryakov,

для этого по хорошему надо DDL триггеры использовать коих до тройки не было.
...
Рейтинг: 0 / 0
20.04.2015, 19:52
    #38941021
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Симонов Денисдля этого по хорошему надо DDL триггеры использовать
По-плохому можно и без них. А аффтар же у нас любитель плохих решений...
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.04.2015, 20:55
    #38941054
Romanzek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Симонов ДенисIvan_Pisarevsky,

да не написать процедуру автоматизирующую создание репликационных триггеров можно. А вот зачем давать на неё права REPLICATOR-у не понятно. Не должно быть у этого пользователя административных привилегий.

Насколько я понял топикстартера, необходимо иметь пользователя, который может создавать триггеры определенного вида для таблиц. Права админские он этому пользователю не дает, а триггеры создавать надо. Для этого делается хранимка с owner привилегиями, на ее выполнение даются права юзеру REPLICATOR. На входе процедура принимает имя таблицы в качестве параметра и создает триггеры (или обновляет их). Таким образом обеспечивается безопасность БД (не нужны админские права на таблицы) и функционал (триггеры создаются в том виде, в котором их задизайнил автор хранимки).

Если я неправильно понял задачу, прошу простить.
...
Рейтинг: 0 / 0
20.04.2015, 20:58
    #38941055
Romanzek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
МимопроходящийкАкая прЭлесть...

очень содержательно :) И главное, в тему :)
...
Рейтинг: 0 / 0
20.04.2015, 21:27
    #38941065
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
RomanzekДля этого делается хранимка с owner привилегиямиВот тут подробнее
...
Рейтинг: 0 / 0
20.04.2015, 21:55
    #38941086
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
hvlad,

это наверное в красной базе. У них там вроде добавлена функциональность authid current_user/definer
...
Рейтинг: 0 / 0
20.04.2015, 22:40
    #38941113
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Симонов Денисэто наверное в красной базеЯ, наверное, догадываюсь. Просто парень не понял, куда попал и как себя вести. Ничё, научится :)
...
Рейтинг: 0 / 0
20.04.2015, 22:46
    #38941115
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
hvladЯ, наверное, догадываюсь.
Учитывая, что триггера эта процедура всё равно должна будет создавать через жопу
ES, это и в Firebird будет работать с помощью with caller privilegies.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
20.04.2015, 22:47
    #38941116
Romanzek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Симонов Денисhvlad,

это наверное в красной базе. У них там вроде добавлена функциональность authid current_user/definer

сорри, а разве это не попало ни в одну версию ФБ?
Ну тогда велкам :)
...
Рейтинг: 0 / 0
20.04.2015, 22:49
    #38941118
Romanzek
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Dimitry Sibiryakov,

а какая проблема с созданием триггеров? Что-то я не понял. У нас повсеместно используется создание объектов БД через хранимки - так работает Ред Платформа Документооборота. Она все создает, от домена и до вьюшек и процедур.
...
Рейтинг: 0 / 0
20.04.2015, 22:56
    #38941123
hvlad
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
Romanzekсорри, а разве это не попало ни в одну версию ФБ?А разве не принято отвечать о том, о чём спрашивают, а не о своём ?
...
Рейтинг: 0 / 0
20.04.2015, 23:01
    #38941130
Roman Simakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разделение прав и создание триггера
ArtDen,

А версия сервера какая? Поскольку в 3-ке можно делигировать ALTER TABLE, который позволит создавать триггеры для таблицы.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение прав и создание триггера / 25 сообщений из 26, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]