Используйте подрывную деятельность без соединительной линии

AFAIK необходимо сделать объект предоставлений по одному.

Обычно Вы использовали бы сценарий, чтобы сделать это, что-то вроде:

SELECT 'GRANT ALL ON '||table_name||' TO BOB;'
FROM   ALL_TABLES
WHERE  OWNER = 'ALICE';

И подобный для других объектов дб.

Вы могли поместить пакет в каждую схему, что необходимо выпустить предоставление, от которого пройдет весь вызов каждый оператор GRANT через ВЫПОЛНЕНИЕ НЕПОСРЕДСТВЕННОГО.

, например,

   PROCEDURE GRANT_TABLES
   IS
   BEGIN

      FOR tab IN (SELECT table_name
                  FROM   all_tables
                  WHERE  owner = this_user) LOOP
         EXECUTE IMMEDIATE 'GRANT SELECT, INSERT, UPDATE, DELETE ON '||tab.table_name||' TO other_user';
      END LOOP;
   END;
21
задан Jason Marcell 24 August 2009 в 15:28
поделиться

6 ответов

Вы говорите о Рекламной модели - в статье Perforce освещены проблемы с ней - сообщение об изменении ролей строк кода и перемещение работы между ветвями.

Расширение моих взглядов на перечисленные проблемы:

1) Изменение политики строк кода:

Каждая строка кода имеет политику, записанную и формализованную или полностью скрытую в голове разработчика. Он определяет, например:

  • , кому разрешено фиксировать код строка
  • , сколько тестов требуется (например, должны ли пройти модульные тесты, регрессионные тесты, полный системный тест)
  • сколько человек должны проверять код изменения
  • что за изменения затем другая политика (для строки кода), как только строка будет выпущена.

    Модель продвижения проста в использовании, она отображается непосредственно на способ работы без контроля версий. Но когда начинаешь собирать большие команды, становится больно.

    Если вы посмотрите на разработку ядра Linux, вы увидите противоречие между рекламной моделью и магистральной моделью: дерево Линуса является рекламным - оно проходит циклы между окном слияния, и период RC / стабилизации. Но Linux-next и -mm возникли, чтобы дать более магистральную линию.

    Распределенные SCM / VCS в любом случае несколько отличаются, политики не должны распространяться среди всех разработчиков, потому что каждый разработчик имеет свои собственные деревья и вносит изменения, когда он хочет.

    Проекты с открытым исходным кодом страдают от этой проблемы что они могут ' • заставлять людей выполнять тяжелую работу по стабилизации выпуска после ответвления от ствола. Поэтому модель продвижения более важна как способ форсирования усилий по стабилизации, а не просто работа над функциями.

    2) Перемещение работы:

    Разработчик может работать над функцией, когда политика для линии, над которой он работает изменения только в исправлениях ошибок, теперь ему нужно переключить свою рабочую копию на другую строку кода. Это может быть от простого до чрезвычайно сложного в зависимости от используемой системы SCM. Этой проблемы не возникает, если разработчик работает над транком, поскольку его работа всегда идет в транк. Если разработчик работает в частной или функциональной ветке, то его работа будет касаться только основной ветви (и выпуска) вообще.

    Если функция уже отмечена, но задерживается по сравнению с версией, в которой она сейчас находится, вы должны разобраться, как его удалить. Эта проблема все еще существует с моделью багажника, но, возможно, ее решить немного проще - собирать вещи из багажника для выпуска. Здесь помогают функциональные ветви, но они требуют затрат на интеграцию.

29
ответ дан 29 November 2019 в 20:43
поделиться

Моя проблема с бумагой Perforce заключается в том, что она отвергает рекламную модель, не упоминая главное преимущество - сокращение накладных расходов на слияние. Фактически, в документе ошибочно утверждается, что «основная модель» не накладывает «никаких дополнительных административных накладных расходов» - смехотворное утверждение. Модель «всегда объединять в ствол» означает именно это - у вас есть накладные расходы, связанные с тем, что все должны объединиться. Это бессмысленные накладные расходы, если у вас есть следующая ситуация (которая у нас есть):

a) небольшая команда (от 5 до 7 разработчиков), все на расстоянии крика друг от друга. коммуникация не является проблемой, когда нам нужно создать ветвь

и

б) кодовая база, где на самом деле всегда есть только две основные ветви - производственная ветвь и «следующая вещь в разработке». Может быть, однажды в синюю луну у нас будет 3.

Я думаю, что моя точка зрения - это ситуационная вещь. Сказать «у рекламной модели есть проблемы» - все равно что сказать «никогда не используйте OR / M». Это зависит от вашей среды.

8
ответ дан 29 November 2019 в 20:43
поделиться

Subversion допускает оба подхода. Багажник - это не необходимость, а условность. Если он у вас есть, некоторые инструменты работают легче (например, инструменты миграции для Git). Если у вас его нет, вам придется делать некоторые вещи вручную, но я не могу придумать что-нибудь, что вы заметите в повседневной работе.

1
ответ дан 29 November 2019 в 20:43
поделиться

Мы делаем - вроде того. Мы не используем транк, а создаем новую ветку для каждого релиза наших проектов. Эта «помеченная» ветвь затем является основной для каждой версии, и мы вносим исправления ошибок путем объединения изменений в более старые выпуски.

У нас это работает хорошо, но в нашем проекте много подпроектов.

0
ответ дан 29 November 2019 в 20:43
поделиться

IME, в некоторых средах ствол - хорошее место для обмена исправлений и изменений в / из. То есть все объединяют свои исправления в магистраль, и все объединяют другие исправления из магистрали. Мы обнаружили, что это очень полезно в среде, где большой объем кода совместно используется многими независимыми проектами и где все эти проекты вносят вклад в общий код.

Однако ваша среда может отличаться.

0
ответ дан 29 November 2019 в 20:43
поделиться

Недавно я начал работу над проектом, который находится в репозитории Subversion. Кто бы ни создавал репозиторий, не придерживался какой-либо конкретной схемы - они просто запихнули все в корень репозитория (без ствола /, без веток / и, конечно, без тегов /). Я хотел создать ветку для работы и несколько тегов для других вещей, но понял, насколько сложно сделать это в репозитории Subversion, который не соответствует правильному макету.

1
ответ дан 29 November 2019 в 20:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: