Механизмы аутентификации Microsoft SQL Server 2000

Опубликовано: 14 Апреля, 2023
Механизмы аутентификации Microsoft SQL Server 2000

Управление доступом к вашим базам данных

Создание безопасного и надежного сервера базы данных включает в себя применение соответствующих средств безопасности к серверу, а также реализацию запланированных допущений безопасности для объектов базы данных. База данных Microsoft SQL Server 2000, тесно интегрированная с операционной системой Windows, позволяет достичь этих целей с относительно небольшими усилиями. Поэтому давайте различать четыре отдельных уровня контроля безопасности базы данных над привилегиями доступа:

  • Контроль над доступом к базе данных на уровне сервера, который применяется ко всем базам данных. Соответствующая конфигурация удаленного доступа (по сети) к системе, на которой установлен сервер баз данных – назначение прав учетным записям пользователей и групп в соответствии с политикой безопасности организации. Настройка веб-серверов для защиты от нарушений безопасности при доступе к базам данных на веб-уровне; если необходимо, дополнительные решения безопасности, такие как настройки брандмауэра или системы обнаружения вторжений. Однако обсуждение деталей этого уровня безопасности в этой статье не рассматривается. Конечно, получение удаленного доступа к системе, на которой работает SQL Server, еще не означает получение доступа к самому серверу базы данных!
  • Контроль над доступом к SQL Server — на этом этапе вы можете контролировать доступ к базам данных с помощью компонентов модели безопасности SQL Server для пользователей, которые могут получить доступ к серверу, но не могут войти на сервер базы данных. Вход в SQL Server дает пользователю разрешение на подключение к SQL Server и работу с минимальными привилегиями в базе данных master, но не на доступ ко всем базам данных.
  • Регулирование доступа к базе данных SQL Server — это следующий уровень безопасности SQL Server: каждая база данных, управляемая SQL Server, имеет список действительных пользователей, которым разрешен доступ к ней и которые используют свои учетные записи для подключения к серверу. Администраторы баз данных могут настраивать логины и пользователей в базах данных, предоставляя им разрешения в соответствии с политикой безопасности организации. Каждому вновь добавленному пользователю предоставляются определенные разрешения, действительные для определенных баз данных. Таким образом, пользователь может получить, например, привилегию администратора (в базе данных X), будучи «обычным» пользователем (в базе данных Y) без необходимости отдельного входа в эти базы данных. Имя пользователя базы данных — гость, и эта гостевая учетная запись используется для входа в систему без собственной учетной записи пользователя в базе данных. Имя входа SQL Server не имеет прав доступа к базе данных, пока вы не настроите имя входа в качестве пользователя этой базы данных. Право на доступ к конкретной базе данных не означает автоматически право выполнять любую команду SQL (язык структурированных запросов) для любого объекта базы данных.
  • Четвертый уровень позволяет назначать разрешения для объектов в базе данных; например, вы можете указать, какие таблицы или хранимые процедуры пользователь может запускать и какие представления он может видеть. Фактически это означает предоставление пользователю конкретных разрешений на выполнение определенных команд SQL для определенных объектов базы данных.

Управление доступом к вашей базе данных Microsoft SQL Server 2000

В Microsoft SQL Database Server 2000 вы можете выбрать любой из двух режимов безопасности (аутентификации), а именно:

  • Режим безопасности NT (только проверка подлинности Windows NT),
  • Смешанный режим ( проверка подлинности Windows NT и проверка подлинности SQL Server ).

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

В смешанном режиме пользователи NT подключаются к базам данных SQL Server в режиме Windows NT, а пользователи, которых NT не проверяет, используют действительные учетные данные SQL Server ( проверка подлинности SQL Server ). Пользователи, которые подключаются к базам данных SQL Server под Windows 2000 или Windows NT, могут использовать механизм доверенных соединений для обоих режимов аутентификации. Всякий раз, когда база данных SQL Server подключена, механизмы управления доступом, которые в данном случае относятся к более низкому уровню (доступ только к базам данных или объектам базы данных), работают одинаково в обоих режимах аутентификации.

Режим аутентификации Windows NT

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

Смешанный режим аутентификации

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

Как этот контроль над доступом к базе данных рассматривается с точки зрения пользователя? Режим аутентификации Windows NT можно использовать для управления доступом к базе данных в двух случаях. Во-первых, если администратор SQL сервера решит выбрать этот режим безопасности и, во-вторых, включен ли смешанный режим. Учетная запись пользователя, доступная в домене Microsoft Network, используется для входа в SQL Server. Идентификатор пользователя (хранящийся в операционной системе) сравнивается с идентификаторами пользователей, включенными в списки управления доступом SQL Server. Если он соответствует действительному идентификатору пользователя, проверенному пользователю будет предоставлен доступ к базам данных (разумеется, только к предопределенным базам данных) без необходимости аутентификации по паролю.

Аутентификация, предоставляемая самим SQL Server, выполняется только при установленном смешанном режиме. Смешанный режим применяется везде, где есть возможность включить режим проверки подлинности Windows NT. Когда может возникнуть такая ситуация? Вы должны выбрать смешанный режим безопасности, когда SQL Server работает на более старых версиях Windows (до 7.0), более старых платформах (Windows 9x и Windows Millennium) или для клиентов, которые не могут войти в сеть Microsoft (например, клиенты Novell). В случае аутентификации доступа, когда пользователь подключается к SQL Server, SQL Server использует ненадежное соединение, которое заставляет клиента каждый раз использовать свои учетные данные, т. е. имя пользователя и пароль, для целей аутентификации. Эти данные, конечно, могут быть зашифрованы и сохранены локально; следовательно, SQL Server управляет собственным процессом проверки входа для всех подключений. Имя пользователя и пароль (пересылаемые в SQL Server в основном с использованием объектов ADO) проверяются на соответствие учетным данным, хранящимся в таблицах ACL SQL Server, для предоставления или отказа в доступе к базам данных SQL Server.

Какой вариант лучше?

В Windows NT 4.0, Windows 2000 или Windows XP рекомендуется использовать режим аутентификации Windows NT. Почему? Эти системы Windows позволяют создавать учетные записи пользователей и группы. Таким образом, этот режим аутентификации может использовать преимущества безопасного механизма, предоставляемого этими системами, а именно надежного сопоставления паролей и шифрования с использованием минимальной длины пароля, времени ожидания пароля или блокировки учетной записи после нескольких неверных попыток входа в систему. Определение групп пользователей (и, возможно, их ролей в базе данных ) значительно помогает в одновременном управлении несколькими пользователями базы данных.

Более того, проверенные пользователи или группы Windows NT могут запрашивать доступ к базам данных, не указывая свое имя и пароль. Таким образом, любое изменение имени пользователя или пароля в Windows не означает необходимости изменения сценариев приложения. С другой стороны, режим аутентификации SQL Server требует, чтобы пользователь вводил свой логин и пароль при попытке доступа к базе данных или изменении скриптов приложения (если имена пользователей или пароли «спрятаны» в скрипте приложения. Очевидно, что это не рекомендуется)., ни безопасной практики, но нельзя исключать, что учетные данные пользователя встроены в скрипт приложения, например, это может случиться с ASP-скриптами).

Режим проверки подлинности SQL Server менее безопасен — это не доверенное соединение, обеспечивающее обратную совместимость. Также им проще управлять; т.е. SQL Server полностью отвечает за аутентификацию пользователя и за применение ограничений безопасности к учетным данным пользователя. С этой точки зрения его можно применять для контроля доступа к некритическим ресурсам организации. Например, вы можете создать единую учетную запись на SQL Server для всех пользователей для доступа к определенному приложению вместо создания нескольких учетных записей пользователей или групп в Windows. Очевидно, это означает, что мониторинг действий отдельных пользователей становится непрактичным и невозможным (SQL Profiler, естественно, будет фиксировать все попытки доступа, но все они будут связаны с одним и тем же пользователем базы данных). Управление пользователями по правилам режима аутентификации Windows требует знания вопросов, связанных с созданием учетных записей и групп пользователей в операционной системе, а также необходимых навыков использования логинов, ролей и пользователей в базе данных. Однако, несмотря на более сложный процесс администрирования, этот режим позволяет устанавливать более точные ограничения доступа и более эффективно управлять несколькими пользователями.

Рисунок 1. Уровень контроля доступа в Ms SQL.

  • Светло-зеленый цвет обозначает разрешения на доступ к Интернету.
  • Фиолетовый цвет обозначает процесс аутентификации доступа к базе данных MS SQL Server.
  • Синий цвет указывает на контроль над доступом к определенным базам данных.
  • Оранжевый цвет указывает на контроль над доступом к объектам конкретной базы данных в Ms SQL Server.

Каковы последствия?

Если пользователь пытается подключиться к SQL Server, указав нулевое имя для входа, тогда SQL Server использует проверку подлинности Windows NT. Кроме того, если пользователь попытается подключиться к SQL Server в режиме проверки подлинности Windows NT и предоставит имя пользователя, то это имя пользователя будет проигнорировано (на данном этапе для проверки подлинности пользователя достаточно входа в систему).

Некоторые практические аспекты

После просвещения (скучных) читателей мельчайшими теоретическими подробностями самое время предоставить некоторую практическую и полезную информацию. Режим аутентификации может быть установлен либо во время, либо после установки SQL Server 2000. Изменения режима аутентификации после установки могут быть сделаны на уровне Enterprise Manager и Windows Register. В Enterprise Manager щелкните правой кнопкой мыши на SQL Server, где вы собираетесь внести изменения в режим аутентификации, выберите параметр «Свойства», а затем перейдите на вкладку «Безопасность».

Рисунок 2. Установка режима аутентификации в Ms SQL Server 2K с уровня Enterprise Manager.

Изображение 26156

Как чтение, так и изменение режима аутентификации можно выполнить с помощью реестра Windows. Для этого сначала необходимо остановить службу MSSQLServer (из другой связанной программы, такой как SQLServergent или DTC). Затем запустите программу regedit.exe (или regedt32.exe). Модель безопасности можно изменить, отредактировав следующий раздел реестра:

HKLMSoftwareMicrosoftMSSqlserverMSSqlServerLoginMode

или же

HKLMSoftwareMicrosoftИмя_сервера_SQLMSSqlServerLoginMode

(в зависимости от выбранных при установке параметров). Значение LoginMode может быть 1 (проверка подлинности Windows) или 2 (смешанный режим). Установив значение этого ключа реестра (тип DWORD), вы можете установить необходимый режим безопасности. Если вы внесли какие-либо изменения, вы должны перезагрузить службу SQL Server.

Доступ к базе данных на уровне приложения в основном осуществляется с использованием объектов Active Data Objects (Connection, Recordset и других). В случае доступа к базе данных SQL сервера (с использованием SQLOLEDB) в рамках проверки подлинности Windows вам не требуется предоставлять учетные данные пользователя в серии активации, чтобы открыть соединение с базой данных.

«Поставщик = SQLOLEDB; Исходный каталог= имя_базы_данных ; Источник данных = имя_сервера_SQL ; Trusted_Connection=да;”

Однако в случае проверки подлинности SQL Server вы должны дополнить эту информацию учетными данными пользователя:

«Поставщик = SQLOLEDB; Исходный каталог= имя_базы_данных ; Источник данных = имя_сервера_SQL ; ID пользователя= имя_пользователя ; Пароль= Пароль ;”

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

здесь

БИБЛИОГРАФИЯ

  1. Библиотека MSDN > Microsoft SQL Server > Управление безопасностью > Уровни безопасности, режимы аутентификации, http://msdn.microsoft.com/library/default.asp?url=/library/en-us/adminsql/ad_security_47u6.asp.
  2. «Справочник по администрированию Essential SQL Server 2000», Б. Вуди, Addison-Wesley, 2002.
  3. «Внутри Microsoft SQL Server 2000», Кален Делани, Microsoft Press, 2001.
  4. «Внедрение и управление SQL Server 2000», Б. Комбс,
  5. «Повышение безопасности SQL Server», В. Майерс III, Д. Байрес, http://www.fawcette.com/vsm/2002_05/magazine/features/myers/default_pf.asp.
  6. «Модель безопасности Microsoft SQL Server», М. Спеник, О. Следж, http://softwaredev.earthweb.com/sdtech/article/0,,12065_721441,00.html.