powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Разделение прав и создание триггера
26 сообщений из 26, показаны все 2 страниц
Разделение прав и создание триггера
    #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
Разделение прав и создание триггера
    #38940371
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ArtDen,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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