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

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

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

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

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

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

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

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

Как триггер поймет, из какой ХП была изменена/вставлена запись?
Окей, третий раз: триггер имеет доступ к полям, в т.ч. и к полю
InterloperВ таблице могут быть записи нескольких типов, отличающиеся по значения поля TYPE
...
Рейтинг: 0 / 0
Как разграничить доступ к таблице в зависимости от вызовов ХП?
    #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
Как разграничить доступ к таблице в зависимости от вызовов ХП?
    #38860777
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денисчто то я не пойму почему нельзя сделать так
Я и уточнял этот момент. На FB15 взлетит грант процедуры на таблицу? У меня ощущение, что нет.
...
Рейтинг: 0 / 0
Как разграничить доступ к таблице в зависимости от вызовов ХП?
    #38860797
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadmanНа FB15 взлетит грант процедуры на таблицу?
Грант там работает нормально, но у аффтара "есть приложение, которое нельзя менять".
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Как разграничить доступ к таблице в зависимости от вызовов ХП?
    #38860798
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

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


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