Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как одним оператором забрать у триггера или процедуры все привилегии на всё? / 20 сообщений из 20, страница 1 из 1
17.11.2016, 11:04
    #39348882
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Казалось бы, субж - простое действие, которое должно быть предусмотрено, но, как оказалось, конструкции REVOKE ALL ON ALL FROM TRIGGER | PROCEDURE | ... не существует (по крайней мере в FB2.5). С чем связано такое ограничение? Неужто опять стандарт SQL виноват?
...
Рейтинг: 0 / 0
17.11.2016, 11:42
    #39348924
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
rdb_dev,

если я не ошибаюсь в стандарте нет вообще привилегий, которые могут быть выданы процедуре, триггеру или любому другому объекту БД кроме пользователей и ролей. По крайней мере ни в одной другой СУБД я такого не видел. Там максимум можно указать с какими правами выполняется процедура (вызывающего пользователя или определяющего, см. предложение SQL SECURITY {INVOKER | DEFINER} (будет в 4.0)). Так что FB здесь скорее всего весьма расширил стандарт.
...
Рейтинг: 0 / 0
17.11.2016, 11:51
    #39348939
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов ДенисТак что FB здесь скорее всего весьма расширил стандарт.Мне вполне устраивает данное расширение стандарта. Жаль не предусмотрели субж топика.
...
Рейтинг: 0 / 0
18.11.2016, 07:43
    #39349570
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов Денисrdb_dev,

если я не ошибаюсь в стандарте нет вообще привилегий, которые могут быть выданы процедуре, триггеру или любому другому объекту БД кроме пользователей и ролей. По крайней мере ни в одной другой СУБД я такого не видел. Там максимум можно указать с какими правами выполняется процедура (вызывающего пользователя или определяющего, см. предложение SQL SECURITY {INVOKER | DEFINER} (будет в 4.0)). Так что FB здесь скорее всего весьма расширил стандарт.

не знаю насчет триггера, но процедуре определенно можно дать привилегии
...
Рейтинг: 0 / 0
18.11.2016, 09:14
    #39349600
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
MaratIsk,

где кроме IB/FB и их клонов?

Напомню речь о выдаче привилегий процедуре на другие объекты метаданных

Код: sql
1.
GRANT INSERT ON MY_TABLE TO PROCEDURE MY_PROC;



а не привилегий на выполнение процедуры

Код: sql
1.
GRANT EXECUTE ON PROCEDURE MY_PROC TO ROLE MANAGER;
...
Рейтинг: 0 / 0
18.11.2016, 09:44
    #39349623
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов Денис, речь о REVOKE ALL ON ALL FROM PROCEDURE | TRIGGER
...
Рейтинг: 0 / 0
18.11.2016, 10:24
    #39349644
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
rdb_dev,

я помню. Ты упомянул стандарт, поэтому я продолжил речь о стандарте. Поскольку стандарта у меня на руках нет, я не могу с уверенностью утверждать, что там говорится на этот счёт. Но попытался поискать, что сделано в других популярных СУБД, и обнаружил, что там вообще никаких прав процедуре не выдаётся. Права процедур там регулируются с помощью предложения SQL SECURITY. У нас такая фича тоже уже есть в 4.0 в дополнение к привилегиям процедуры, что существенно облегчит администрирование.

ИХМО предлагаемое расширение оператора REVOKE было бы полезно. Особенно если кто-то решит поменять процедуры на SQL SECURITY DEFINER в 4.0, чтобы лишние привилегии не болтались. Если есть желание сделай тикет в трекере.
...
Рейтинг: 0 / 0
18.11.2016, 10:34
    #39349651
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов ДенисНо попытался поискать, что сделано в других популярных СУБД, и обнаружил, что там вообще никаких прав процедуре не выдаётся. Права процедур там регулируются с помощью предложения SQL SECURITY.Это известный факт... Но как по мне, выдача привилегий триггерам и процедурам обладает большей гибкостью и позволяет обеспечить большую защищенность.
...
Рейтинг: 0 / 0
18.11.2016, 10:50
    #39349666
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
rdb_dev,

то что гибкость больше никто не спорит. А вот удобство совсем другой вопрос. Чаще всего процедуре дают права на все объекты которые в ней используются. В этом случае гораздо проще просто написать процедуру с предложением SQL SECURITY DEFINER и не думать над правами каждый раз когда изменяешь процедуру. Хотя могут быть и другие варианты.

В этом плане 4.0 в сочетании с ролями по умолчанию (ака группы) позволяют настраивать привилегии очень гибко.
...
Рейтинг: 0 / 0
18.11.2016, 10:53
    #39349669
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов Денис, как я понял, на улучшения FB2.5 забили и до конца поддержки в неё будут пихать только критические патчи?
...
Рейтинг: 0 / 0
18.11.2016, 11:08
    #39349688
fraks
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
rdb_devСимонов Денис, как я понял, на улучшения FB2.5 забили и до конца поддержки в неё будут пихать только критические патчи?

А вот сейчас обидно было :)
Критические патчи - этого мало что-ли, для поддержки?

Дальнейшее развитие FB2,5 - это и есть FB3, который уже релизнулся, уже про FB4 речь идет.
...
Рейтинг: 0 / 0
18.11.2016, 11:08
    #39349689
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
rdb_dev,

ясен пень. С высокой долей вероятности как только выйдет релиз 4.0, FB 2.5 вообще снимут с поддержки.

Политика примерно такая.

2.5 (предыдущая) - только исправление ошибок.
3.0 (текущая) - исправление ошибок и улучшения.
4.0 (в разработке) - новые фичи, исправления ошибок и улучшения.

Исключения могут быть, но они весьма редки.

REVOKE ALL ON ALL FROM {TRIGGER | PROCEDURE | ...} ...

это скорее улучшение, а не новая фича. В любом случае если у тебя есть потребность сделай тикет в трекере, там решат делать ли это, и портировать ли в предыдущие версии (если будут делать конечно).
...
Рейтинг: 0 / 0
18.11.2016, 13:42
    #39349810
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов Денис,

ну дак и это возможно
вот что мне flamerobin построил и выполнил
GRANT INSERT ON TB_REPORTS TO PROCEDURE SP_REPORTS;
...
Рейтинг: 0 / 0
18.11.2016, 13:52
    #39349819
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
MaratIsk,

я с этим не спорил. Почитай топик целиком.
Я только сказал, что не знаю ни одной СУБД, в которой права на объекты метаданных даются процедуре, триггеру, функции или пакету. На выполнение или вызов процедуры (EXECUTE) есть практически везде.
...
Рейтинг: 0 / 0
18.11.2016, 13:52
    #39349820
rdb_dev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
MaratIsk, что написано в topic subject?
...
Рейтинг: 0 / 0
18.11.2016, 13:52
    #39349821
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов Денис,

кроме IB/FB
...
Рейтинг: 0 / 0
18.11.2016, 14:04
    #39349839
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
Симонов Денис,

ты читаешь между строк???
лично я вижу заголовок темы - Как одним оператором забрать у триггера или процедуры все привилегии на всё?
...
Рейтинг: 0 / 0
18.11.2016, 14:09
    #39349844
MaratIsk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
впрочем, добавил бы - тема - яйца выеденного не стоит
...
Рейтинг: 0 / 0
18.11.2016, 14:13
    #39349850
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
MaratIsk,

ну и как? Нет такого оператора в SQL Firebird. rdb_dev помимо основного вопроса хотел спросить с чем это связано, а так же узнать что говорится в стандарте по этому поводу. Я сказал, что предполагаю что в стандарте вообще про это ничего не написано.
...
Рейтинг: 0 / 0
18.11.2016, 14:16
    #39349853
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним оператором забрать у триггера или процедуры все привилегии на всё?
MaratIskвпрочем, добавил бы - тема - яйца выеденного не стоит

ну почему же? Я считаю что такой оператор был бы полезен. А вот шанс его введения особенно в 2.5 не велик.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Как одним оператором забрать у триггера или процедуры все привилегии на всё? / 20 сообщений из 20, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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