Смена аутентификации

by Admin 3. февраля 2009 23:01

Как известно в SQL Server можно выбрать один из двух типов аутинтификации - Windows Authentication (Аутентификация Windows) или SQL Server Authentication (Аутентификация SQL Server). Сменить режим аутентификации на сервере с помощью SSMS (SQL Server Management Studio) либо с помощью EM (Entreprise Manager) достаточно легко, достаточно в свойствах сервера перейти на закладку Security и установить нужную "галку".

 

После этого обязательно необходимо перезапустить службу MSSQLSERVER.

Всё это достаточно прозрачно, но что делать, если у нас бесплатная редакция MSDE(2000) или Express (2005/2008) без установленных клиентских утилит?

Ответ достаточно прост, если знать, что настройки аутентификации хранятся в реестре.

С помощь недокументированной процедуры T-SQL xp_instance_regwrite, через утилиты OSQL/SQLCMD, меняем значение (

  1. Windows Authentication mode;
  2. SQL Server and Windows Authentication mode)
EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 1

Далее мы помним, что после смены типа аутинтификации, необходимо перезапустить службу. Остановить её можно так же с помощью T-SQL (процедура xp_servicecontrol также недокументированная):

EXEC master..xp_servicecontrol 'stop', 'MSSQLSERVER'

А вот запустить службу через T-SQL не выдет, т.к. она остановлена, но если у вас установлен второй инстанс, тогда через него достаточно выполнить:

EXEC master..xp_servicecontrol 'start', 'MSSQLSERVER'

Но на мой взгляд службу лучше перестартовывать с помощью команд: net stop MSSQLSERVER/net start MSSQLSERVER

Тогда конечный вариант для смены аутентификации на сервере будет выглядеть так (достаточно вставить этот код в bat-файл и использовать, когда вам это потребуется):

 

  • SQLCMD -E -q "EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'LoginMode', REG_DWORD, 1"
  • net stop MSSQLSERVER
  • net start MSSQLSERVER

 

Tags:

SQL Server

Добавить комментарий

  Country flag

biuquote
  • Комментарий
  • Предпросмотр
Loading