SQL Server должен быть на той же машине как Ваша установка IIS? [закрытый]

У меня также есть решение со стандартными входами и выходами

#include<stdio.h>
#include<malloc.h>
int main()
{
    char *str,ch;
    int size=10,len=0;
    str=realloc(NULL,sizeof(char)*size);
    if(!str)return str;
    while(EOF!=scanf("%c",&ch) && ch!="\n")
    {
        str[len++]=ch;
        if(len==size)
        {
            str = realloc(str,sizeof(char)*(size+=10));
            if(!str)return str;
        }
    }
    str[len++]='\0';
    printf("%s\n",str);
    free(str);
}
22
задан alexandrul 1 December 2008 в 12:38
поделиться

3 ответа

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

Тогда существует аспект производительности . Это общеизвестно, что SQL Server любит память. Также - IIS, особенно если веб-сайт делает широкое применение информации о сессии и кэширования. Таким образом, у Вас есть потенциальный конфликт здесь также. Наличие выделенной машины для SQL Server ясно лучше, чем наличие единственной машины, делающей всю загрузку.

Затем разделение позволяет более легкая идентификация потребности настроиться и способность настроить отдельные аппаратные компоненты.

Таким образом, машина, достаточно мощная для преодоления требований и IIS и SQL Server в продуктивной среде , не обязательно будет более дешевой, чем две машины specced для конкретных требований каждого сервера. (Jeff Atwood, упомянутый в одном из подкастов, то обновление одной машины стоило бы того же как получения второй машины) .

45
ответ дан Tom H 29 November 2019 в 03:33
поделиться

безопасность @MarkR

действительно улучшена путем перемещения SQL Server в другое поле, и это относится к представленной Поверхности атаки.

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

Использование одной из этих уязвимостей могло привести к произвольной способности кода выполниться.

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

, Если SQL Server установлен на той же машине, любая база данных уязвима.

Теперь, если SQL Server установлен на отдельной машине, к нему можно самостоятельно только получить доступ через ее открытый интерфейс. Поверхность присоединения базы данных ограничена тем интерфейсом. Так, чтобы поставить под угрозу базу данных, теперь необходимо поставить под угрозу веб-сервис сначала, ТОГДА SQL Server. Это НАМНОГО более трудно, чем наличие их на той же машине.

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

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

12
ответ дан splattne 29 November 2019 в 03:33
поделиться

Помещение их на той же машине:

  • Уменьшает задержку между ними - поэтому, если у Вас есть много легких запросов, это может улучшиться, производительность
  • Делают Вашу разработку и тестирование производительности легче, потому что можно сделать это с единственным полем (или VM)

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

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

11
ответ дан MarkR 29 November 2019 в 03:33
поделиться
Другие вопросы по тегам:

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