Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как разграничить доступ к таблице в зависимости от вызовов ХП? / 24 сообщений из 24, страница 1 из 1
22.01.2015, 09:01
    #38860295
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Есть таблица Table1. Необходимо сделать так, чтобы процедура StoredProc1 могла делать INSERT и UPDATE этой таблицы, а остальные процедуры - не могли. Все процедуры могут выполняться от одного пользователя, поэтому с помощью ролей эту задачу решать нельзя. Версия FB - 1.5.
...
Рейтинг: 0 / 0
22.01.2015, 09:31
    #38860322
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Interloper,

не вижу проблем. Отнимаешь права INSERT, UPDATE для таблицы Table1 у этого пользователя и даёшь эти права процедуре StoredProc1, другим процедурам права не даёшь
...
Рейтинг: 0 / 0
22.01.2015, 09:34
    #38860328
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Симонов Денис, а это взлетит в 1,5?
...
Рейтинг: 0 / 0
22.01.2015, 09:35
    #38860330
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Я имею в виду
Симонов Дениси даёшь эти права процедуре StoredProc1
...
Рейтинг: 0 / 0
22.01.2015, 09:52
    #38860342
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Дополню условие. В таблице могут быть записи нескольких типов, отличающиеся по значения поля TYPE. Полностью права забирать у юзера нельзя, так как он должен уметь работать с записями некоторых типов. Однако не должен иметь возможность работать с записями типа, создаваемого через ХП.
...
Рейтинг: 0 / 0
22.01.2015, 09:54
    #38860347
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
InterloperДополню условие. В таблице могут быть записи нескольких типов, отличающиеся по значения поля TYPE. Полностью права забирать у юзера нельзя, так как он должен уметь работать с записями некоторых типов. Однако не должен иметь возможность работать с записями типа, создаваемого через ХП.
Если "запись" - это строка, то "придется программировать". Либо на стороне клиента, либо триггеры.
...
Рейтинг: 0 / 0
22.01.2015, 10:18
    #38860363
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
wadmanInterloperДополню условие. В таблице могут быть записи нескольких типов, отличающиеся по значения поля TYPE. Полностью права забирать у юзера нельзя, так как он должен уметь работать с записями некоторых типов. Однако не должен иметь возможность работать с записями типа, создаваемого через ХП.
Если "запись" - это строка, то "придется программировать". Либо на стороне клиента, либо триггеры.
Допустим, триггеры. Как в триггере понимать, что строка изменилась из-под определенной ХП?
...
Рейтинг: 0 / 0
22.01.2015, 10:28
    #38860370
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
InterloperКак в триггере понимать, что строка изменилась из-под определенной ХП?
Я знаю ответ.
InterloperОднако не должен иметь возможность работать с записями типа, создаваемого через ХП.
Interloperотличающиеся по значения поля TYPE
...
Рейтинг: 0 / 0
22.01.2015, 10:30
    #38860374
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
InterloperКак в триггере понимать, что строка изменилась из-под определенной ХП?контекстные переменные?
...
Рейтинг: 0 / 0
22.01.2015, 10:38
    #38860383
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
roadster,

можно служебное поле. Контекстные переменные в 1.5 не взлетят.
...
Рейтинг: 0 / 0
22.01.2015, 10:41
    #38860386
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
wadmanInterloperКак в триггере понимать, что строка изменилась из-под определенной ХП?
Я знаю ответ.
InterloperОднако не должен иметь возможность работать с записями типа, создаваемого через ХП.
Interloperотличающиеся по значения поля TYPE
Есть клиентское приложение, которое позволяет пользователю менять значение этого поля. Его код менять нельзя. Поэтому пользователь не должен создавать записи с определенным TYPE через клиентское приложение.
...
Рейтинг: 0 / 0
22.01.2015, 10:42
    #38860389
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
DarkMasterroadster,

можно служебное поле. Контекстные переменные в 1.5 не взлетят.

Тоже склоняюсь к такому варианту.
...
Рейтинг: 0 / 0
22.01.2015, 10:47
    #38860395
roadster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
DarkMasterКонтекстные переменные в 1.5 не взлетят.забыл
InterloperЕсть клиентское приложение...
пользователь не должен создавать записи с определенным TYPE через клиентское приложениеограничьте в клиенте.
...
Рейтинг: 0 / 0
22.01.2015, 10:56
    #38860408
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
InterloperПоэтому пользователь не должен создавать записи с определенным TYPE через клиентское приложение.
Как раз то, что нужно для триггера. Или я повторяюсь?
...
Рейтинг: 0 / 0
22.01.2015, 12:43
    #38860551
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
updateable view?
row level секурити и сейчас только так можно сделать.
...
Рейтинг: 0 / 0
22.01.2015, 14:25
    #38860696
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
wadmanInterloperПоэтому пользователь не должен создавать записи с определенным TYPE через клиентское приложение.
Как раз то, что нужно для триггера. Или я повторяюсь?

Как триггер поймет, из какой ХП была изменена/вставлена запись?
...
Рейтинг: 0 / 0
22.01.2015, 14:27
    #38860700
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
InterloperКак триггер поймет, из какой ХП была изменена/вставлена запись?ХП может прописать имя в доп поле. Если ХП пишет во вьюху, то это поле можно и не материализовывать в физической таблице.
...
Рейтинг: 0 / 0
22.01.2015, 14:28
    #38860703
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
InterloperКак триггер поймет, из какой ХП была изменена/вставлена запись?

Триггер будет на вьюхе, а ХП будут вставлять записи прямо в таблицу, так что он их даже не
заметит. Можно спокойно выкидывать исключение на любую попытку вставки неправильного типа.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.01.2015, 14:57
    #38860756
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Interloperwadmanпропущено...

Как раз то, что нужно для триггера. Или я повторяюсь?

Как триггер поймет, из какой ХП была изменена/вставлена запись?
Окей, третий раз: триггер имеет доступ к полям, в т.ч. и к полю
InterloperВ таблице могут быть записи нескольких типов, отличающиеся по значения поля TYPE
...
Рейтинг: 0 / 0
22.01.2015, 14:57
    #38860758
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
что то я не пойму почему нельзя сделать так

Код: sql
1.
2.
3.
4.
GRANT INSERT ON TABLE Table1 TO PROCEDURE StoredProc1;
GRANT UPDATE ON TABLE Table1 TO PROCEDURE StoredProc1;

GRANT EXECUTE ON PROCEDURE StoredProc1 TO MyUser;



Самому MyUser прав на таблицу Table1 не давать. Другим процедурам тоже. И почему это не должно работать в полторашке?
...
Рейтинг: 0 / 0
22.01.2015, 15:10
    #38860777
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
Симонов Денисчто то я не пойму почему нельзя сделать так
Я и уточнял этот момент. На FB15 взлетит грант процедуры на таблицу? У меня ощущение, что нет.
...
Рейтинг: 0 / 0
22.01.2015, 15:25
    #38860797
Dimitry Sibiryakov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
wadmanНа FB15 взлетит грант процедуры на таблицу?
Грант там работает нормально, но у аффтара "есть приложение, которое нельзя менять".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
22.01.2015, 15:25
    #38860798
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
wadman,

судя по LangRef InterBase 6 должно взлететь
...
Рейтинг: 0 / 0
23.01.2015, 08:07
    #38861339
Interloper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как разграничить доступ к таблице в зависимости от вызовов ХП?
В моем случае решил задачу пользуясь тем, что StoredProc1 помимо вставки в Table1 обновляет в Table2 поле, являющееся внешним ключом на Table1. Триггер, соответственно, смотрит - есть ли в Table2 ссылка на изменяемую запись. Если есть, то значит StoredProc1 отработала и нужно запрещать изменение.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как разграничить доступ к таблице в зависимости от вызовов ХП? / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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