Опубликован: 29.07.2008 | Уровень: специалист | Доступ: платный
Лекция 2:

Основные принципы обеспечения безопасности базы данных

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Аннотация: В данной лекции рассматриваются принципы разработки политики безопасного доступа к Microsoft SQL Server, описываются принципы управления доступом к экземплярам SQL Server, к базам данных SQL Server, к схемам

В "Какие именно данные приложения следует хранить в базе данных" мы разобрали вопрос о том, какие данные стоит, а какие не стоит хранить в базе данных. В данной лекции будут рассмотрены основные концепции обеспечения безопасности баз данных, которые должен знать каждый разработчик, чтобы создавать защищенные базы данных.

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

Проектирование механизма сетевой безопасности для обеспечения безопасности системы базы данных

SQL Server 2005 – первая версия SQL Server, которая была разработана в рамках инициативы Microsoft Trustworthy Computing (Защищенные информационные системы). Один из принципов этой инициативы – Security by Default (Безопасность по умолчанию). Реализуя этот принцип, SQL Server 2005 по умолчанию отключает некоторые сетевые настройки, чтобы сохранить максимально возможный уровень безопасности среды SQL Server.

Разрешение удаленного доступа

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

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

При установке SQL Server с параметрами по умолчанию многие функции отключены, чтобы уменьшить уязвимость системы базы данных против атак. Например, в SQL Server 2005 по умолчанию не разрешаются удаленные подключения (за исключением версии Enterprise), поэтому для того, чтобы задействовать удаленные подключения, мы воспользуемся инструментом SQL Server Surface Area Configuration (Настройка контактной зоны SQL Server), как показано на рис. 2.1.

Для этого выполните перечисленные ниже действия:

Разрешаем удаленные соединения
  1. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, Configuration Tools, SQL Server Surface Area Configuration. (Все программы, Microsoft SQL Server 2005, Средства настройки, Настройка контактной зоны SQL Server).
    Инструмент Настройка контактной зоны SQL Server для служб и подключений

    увеличить изображение
    Рис. 2.1. Инструмент Настройка контактной зоны SQL Server для служб и подключений
  2. Под заголовком Configure Surface Area For Localhost (Настроить контактную зону для localhost) в нижней части окна щелкните ссылку Surface Area Configuration For Services And Connections (Настройка контактной зоны для служб и соединений).
  3. С левой стороны открывшегося окна отображается список компонентов, которые можно настроить. В этом списке разверните дерево элемента Database Engine и щелкните мышью элемент Remote Connections (Удаленные соединения).
  4. Выберите вариант Local And Remote Connections (Локальные и удаленные соединения), а затем выберите нужные протоколы.

Допускается использование удаленных соединений с использованием сетевых протоколов TCP/IP или Named Pipes (именованные каналы). В интересах безопасности и производительности рекомендуется использовать протокол TCP/IP.

Обеспечение безопасности внешнего доступа

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

Дополнительная информация.SQL Server допускает использование соединений с различными типами конечных точек. О конечных точках рассказывается в лекции 5 курса "Оптимизация работы серверов баз данных Microsoft SQL Server 2005".

Управление доступом к экземплярам SQL Server

Устанавливая соединение с экземпляром SQL Server, вы должны предоставить корректную информацию для проверки подлинности. Ядро базы данных выполняет двухфазный процесс проверки подлинности. Сначала проверяется, предоставили ли вы действующее имя пользователя учетной записи, имеющей разрешение на подключение к экземпляру SQL Server. Далее, ядро базы данных проверяет, имеет ли данная учетная запись разрешение на доступ к той базе данных, к которой выполняется попытка подключения.

В SQL Server 2005 участники – это лица, группы или процессы, которые запрашивают доступ к ресурсам базы данных. Участники иерархически упорядочены по уровням операционной системы, сервера и базы данных и могут быть индивидуальными (неделимыми) или коллективными.

Например, имя входа SQL – это индивидуальный участник на уровне экземпляра SQL Server, а группа Windows – коллективный участник на уровне операционной системы.

Выбор режима проверки подлинности

SQL Server 2005 для предоставления доступа поддерживает два режима аутентификации: режим проверки подлинности Windows и комбинированный режим проверки подлинности. Режим проверки подлинности можно настроить через SQL Server Management Studio, выполнив следующие действия:

Настраиваем режим проверки подлинности
  1. В меню Start (Пуск) выберите All Programs,. Microsoft SQL Server 2005, SQL Server Management Studio (Все программы, Microsoft SQL Server 2005, Среда SQL Server Management Studio).
  2. В диалоговом окне Connect To Server (Соединение с сервером) нажмите кнопку Connect (Соединить).
  3. В панели Object Explorer (Обозреватель объектов) щелкните правой кнопкой мыши на значке экземпляра SQL Server и выберите из контекстного меню пункт Properties (Свойства).
  4. В панели Select A Page (Выбор страницы) выделите значок Security (Безопасность).
  5. В секции Server Authentication (Серверная проверка подлинности) выберите нужный режим проверки подлинности, как показано на рис. 2.2 (см. рис. вверху следующей страницы).
Важно. Для того, чтобы изменение режима проверки подлинности вступило в силу, перезапустите экземпляр SQL Server.

При выборе режима проверки подлинности рекомендуется следовать приведенным ниже рекомендациям:

  • Режим проверки подлинности Windows.В этом режиме SQL Server при проверке подлинности пользователя, запрашивающего доступ к экземпляру SQL Server, полагается на операционную систему. Пользователю не нужно предоставлять какие-либо учетные данные в строке подключения, поскольку он уже аутентифицирован операционной системой.
  • Комбинированный режим проверки подлинности (SQL Server и Windows).В этом режиме пользователь может подключиться к SQL Server с использованием режима проверки подлинности либо Windows, либо SQL Server. В последнем случае SQL Server проверяет учетные данные пользователя на соответствие действующим именам входа SQL Server. При использовании режима проверки подлинности SQL Server пользователь должен указать в строке соединения имя пользователя и пароль для доступа к SQL Server.
    Установка режима проверки подлинности через интерфейс SQL Server Management Studio

    увеличить изображение
    Рис. 2.2. Установка режима проверки подлинности через интерфейс SQL Server Management Studio
    Примечание. В SQL Server 2005 невозможно задать отдельно режим проверки подлинности SQL Server. Однако необходимо, по возможности, настроить параметры безопасности для экземпляра SQL Server, чтобы ограничить доступ большей части пользователей Windows.

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

Однако существуют ситуации, когда проверка подлинности Windows будет не лучшим вариантом. Например, если необходимо предоставить доступ пользователям, которые не принадлежат к среде вашей операционной системы, например, внешним поставщикам или тем, кто использует операционную систему с несовместимой системой обеспечения безопасности, лучше выбрать комбинированный режим проверки подлинности и использовать имена входа SQL Server, чтобы установить для таких пользователей соединение с SQL Server.

< Лекция 1 || Лекция 2: 123 || Лекция 3 >
Марат Уздемиров
Марат Уздемиров
Ярослав Малащенко
Ярослав Малащенко
Динара Абдрахманова
Динара Абдрахманова
Казахстан
Volker Grote
Volker Grote
Германия, Bremen