1. Skip to Menu
  2. Skip to Content
  3. Skip to Footer

Переименовать доменного пользователя в SQL Server

 

Если вы используете в своем SQL сервере доменные учетные записи для аутентификации и авторизации пользователей, то может возникнуть ситуация, когда надо переименовать учетную запись. В этом случае вы, сперва, должны изменить её в AD, а дальше воспользоваться командой ALTER LOGIN на SQL сервере. Однако, при выполнении этой команды, скорее всего, вы увидите ошибку о невозможности переименования.

Это возникает потому, что на Windows сервере, где установлен непосредственно сам SQL Server, работает служба Local Security Authority (LSA), которая кэширует сопоставления SID и имен пользователей в локальном кэше. Имя кэшированного пользователя не синхронизируется с контроллером домена автоматически, а сперва берется из кэша хранилища LSA. Система первым делом "смотрит" в свой локальный кэш, находит там нужный SID и подставляет имеющееся в нем имя.

Чтобы обойти эту проблему, необходимо временно отключить кэширование. На сервере откройте редактор реестра и проделайте следующее:

 

1. Найдите и щелкните правой кнопкой мышки следующий подраздел реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa

2. Создайте новую переменную типа DWORD с именем LsaLookupCacheMaxSize

3. Задайте значение созданной переменной равное 0

 

Теперь можно смело переименовывать учетную запись на SQL сервере (сперва в учетных записях сервера, потом в учетных записях конкретной БД).

По окончании переименования не забудьте удалить недавно созданную переменную LsaLookupCacheMaxSize, чтобы снова задействовать механизм кэширования сопоставления SID и имен пользователей - это существенно ускорит работу вашего SQL сервера.

 

 

Комментарии   

 
0 #2 Алексей 25.11.2014 10:27
Антон, так сделать нельзя.
Цитировать
 
 
0 #1 Антон Бубликов 24.11.2014 18:42
А можно ли логину с SQL авторизацией назначить Windows авторизацию?
Цитировать
 

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