Учетные записи SQL Server хранятся в системной базе данных Master, в таблице syslogins. Каждая строка таблицы соответствует одной учетной записи. Вместо паролей в таблицу записываются соответствующие хешированные значения. При прохождении идентификации и аутентификации стандартными средствами SQL Server 2005 система получает имя и пароль текущего пользователя, преобразует пароль в хешированное значение и ищет запись в таблице syslogins, где поля name и password совпадают с текущим именем и хешированным паролем соответственно. Если поиск дает положительный результат, идентификация и аутентификация считаются пройденными.
Помимо указанного способа, SQL Server поддерживает аутентификацию с использованием учетной записи домена Windows NT. Непосредственная аутентификация пользователя происходит в домене Windows NT при входе в систему, после чего можно в любое время устанавливать так называемое доверительное соединение с сервером СУБД – соединение без дополнительных проверок имени и пароля.
Учетные записи Windows NT находятся в специальном хранилище системы безопасности домена, отдельно от SQL Server. Каждая учетная запись имеет уникальный идентификатор (login ID), он же идентификатор безопасности (SID). Во время регистрации в домене операционная система по введенным имени и паролю находит SID учетной записи и с его помощью организует доступ пользователя ко всем ресурсам компьютера и сети. Чтобы пользователь домена мог соединяться с SQL Server, его SID должен быть предварительно сохранен в системной таблице syslogins. При этом сохраняется именно SID: имя, пароль и прочие сведения не копируются из хранилища учетных записей домена. Во время установки соединения серверу СУБД передается только SID текущей учетной записи Windows NT с клиентской рабочей станции; сервер ищет соответствующую строку в таблице syslogins, и, если находит, устанавливает соединение.
Применение доверительного соединения обладает рядом преимуществ по сравнению с использованием внутренних учетных записей SQL Server. Во-первых, пользователю достаточно запомнить только одну пару «имя-пароль», чтобы свободно заходить как в домен Windows, так и в СУБД. Во-вторых, повышается уровень защищенности паролей: при аутентификации в режиме Windows NT пароли по сети не передаются, что исключает возможность их перехвата. И наконец, хеш-образы паролей Windows NT вскрываются гораздо труднее, чем хеши паролей SQL Server.
Однако аутентификация с использованием учетных записей SQL Server может оказаться полезной и даже неизбежной, если администрированием домена и СУБД занимаются разные люди, которые испытывают трудности при согласовании своих действий. Внутренняя аутентификация SQL Server – это возможность разделить эти задачи, сделать администрирование СУБД независимым от администрирования операционной системы. Кроме того, аутентификация в режиме Windows NT невозможна для пользователей, работающих под управлением операционных систем Unix, Novell NetWare. Невозможна она и при подключении к SQL Server через Интернет.
Перечисленные способы аутентификации не следует путать с режимами аутентификации, которых в СУБД SQL Server тоже два.
1. Режим смешанной аутентификации.
Работая в этом режиме, SQL Server поддерживает оба метода аутентификации.
2. Режим аутентификации Windows.
В этом режиме доступ предоставляется только пользователям, зарегистрированным в домене. Этот режим не удобен для пользователей операционных систем, несовместимых с Windows NT. В то же время, он более защищен по сравнению с предыдущим.
Невозможно сконфигурировать систему безопасности для применения только учетных записей SQL Server.
Создание учетной записи
Для создания учетных записей в SQL Server 2005 используется SQL-команда CREATE LOGIN, имеющая следующий синтаксис:
CREATE LOGIN имя_учетной_записи
{WITH опции | FROM источник}
Секция WITH используется для создания внутренней учетной записи SQL Server, ее полный синтаксис имеет вид:
WITH PASSWORD = ‘пароль’ [HASHED] [MUST_CHANGE]
[, SID = sid
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.