Re: Разделение

Поиск
Список
Период
Сортировка
От Andrey N. Oktyabrski
Тема Re: Разделение
Дата
Msg-id 43F5BA87.8090606@antora.ru
обсуждение исходный текст
Ответ на Re: Разделение  ("Andrey N. Oktyabrski" <ano@antora.ru>)
Список pgsql-ru-general
Andrey N. Oktyabrski wrote:
> qq=> UPDATE t SET a = 'ano' where i = 3;
> ERROR:  доступ запрещён для связи t
> qq=> DELETE FROM t where i > 2;
> ERROR:  доступ запрещён для связи t
>
> Потому я и хочу возможность update/delete без необходимости разрешения
> select.
Тут вот человек патчик соорудил, который даёт нужную функциональность,
но мы не уверены, что он не делает где-то дырку в безопасности. Надо,
чтобы его проверил человек, хорошо знакомый с дизайном постгреса:

--- postgresql-8.1.2/src/backend/executor/execMain.c    2005-11-22
21:23:08.000000000 +0300
+++ postgresql/src/backend/executor/execMain.c  2006-02-17
13:19:29.000000000 +0300
@@ -460,6 +460,16 @@
         bool            do_select_into;
         TupleDesc       tupType;

+       if ( operation == CMD_UPDATE )
+       {
+               ListCell   *l;
+               foreach(l, parseTree->rtable)
+               {
+                       RangeTblEntry *rte = lfirst(l);
+                       rte->requiredPerms ^= ACL_SELECT;
+               }
+       }
+
         /*
          * Do permissions checks.  It's sufficient to examine the
query's top
          * rangetable here --- subplan RTEs will be checked during

В списке pgsql-ru-general по дате отправления:

Предыдущее
От: "Andrey N. Oktyabrski"
Дата:
Сообщение: Re: Разделение
Следующее
От: "Andrey N. Oktyabrski"
Дата:
Сообщение: Компиляция pgsql на солярке компилятором sun studio