вторник, 6 июля 2010 г.

Как включить Mixed mode авторизацию в MS SQL Server 2008 R2 Express Edition


Так получилось, что на девелоперской машине я использую MS SQL Server. Недавно переезжал на своего "малыша" и необходимо было настроить окружение на нем. В частности - поставить MS SQL Server 2008 R2 Express Edition, создать в нем пользователя и настроить его подключение к серверу.

Сразу замечу, что в MS SQL Server 2008 все работало "из коробки", однако в MS SQL Server 2008 R2 настройки по-умолчанию оказались иными. Коротко суть проблемы: создан пользователь, которому указан тип авторизации SQL Server authentication:



При попытке войти этим пользователем в систему, даже если вводить правильную пару логин/пароль выскакивает ошибка:





Суть проблемы в следующем: по-умолчанию в MS SQL Server 2008 R2 отключен т.н. Mixed mode режим авторизации, соответственно, войти в систему могут только пользователи, у которых есть Windows-аккаунт. Поменять режим авторизации можно по-челябински сурово - из реестра (за наводку спасибо Vakul Kumar и его статье Configure Microsoft SQL Server for Mixed Mode Authentication).

Нужно сделать следующее: открыть ветку реестра HKLM/SOFTWARE/Microsoft/Microsoft SQL Server/MSSQL10_50.SQLEXPRESS/MSSQLServer/. В списке справа отображаются параметры данной ветки, среди них присутствует параметр LoginMode, значение которого по-умолчанию равно 1:



Необходимо установить это значение равным двум:



Чтобы изменения вступили в силу нужно перезапустить MS SQL Server. Для этого необходимо воспользоваться программой Пуск -> Все программы -> MS SQL Server 2008 R2 -> Configuration Tools -> SQL Server Configuration Manager. В правой части окна программы выбираем SQL Server Services, соответственно, в левой - появится список серверов. Правой кнопкой мыши нужно щелкнуть на SQL Server (SQLEXPRESS) и из выпадающего меню выбрать Restart:



После некоторого времени сервер перезапустится и в нем можно будет использовать SQL Server-авторизацию:



На рисунке видно, что на сервере авторизован пользователь dms, чего и требовалось добиться.

UPD: Вот тут с первой парты подсказывают, что сделать данную настройку можно менее сурово. Нужно лишь щелкнуть правой кнопкой мышки на сервере и выбрать из контекстного меню Properties:



В окне редактирования свойств перейти на страницу Security и отметить галочкой пункт SQL Server and Windows Authentication mode:



После чего перезапустить MS SQL Server как описано выше.

Но вы же понимаете, что данный способ исключительно для девочек :)

Понравилось сообщение - подпишитесь на блог или читайте меня в twitter

5 комментариев:

Аленьков Виктор комментирует...

у них для этого "Microsoft SQL Server Management Studio" есть

Alexey комментирует...

Забыл рестарт после смены настроек девачко-style ;)

Pavel Samolisov комментирует...

Google Blogspot сегодня выдает ошибку при попытке разрешить комментарий. Поэтому заапрувлю ваши комментарии чуть позже. Не переживайте, они не потерялись.

ViktorR комментирует...

Интерестный момент, особенно для програмной настройки прав доступа. или если удалённое управление реестром открыто :)

Сергей Семенов комментирует...

Даже если будет выполнена настройка MSSMS так, как подсказывали с первой парты, то использовать встроенного в SQL админа (sa) не удастся, потому, что по умолчанию в R2 неактивен.
Для того, чтобы его задействовать, нужно:
1. авторизоваться, используя виндозного юзера; 2. раскрыть следующие узлы в обозревателе объектов: .
3. найти там пользователя sa, из контекстного меню выбрать .
4. в открывшемся окне слева выбрать страницу "Состояние" и там в настройках имени входа выбрать , ну и дополнительные настройки в других страницах произвести (типа пароля и прочее)

Отправить комментарий

Любой Ваш комментарий важен для меня, однако, помните, что действует предмодерация. Давайте уважать друг друга!