Изменение учетной записи AD не работает на сервере SQL
Когда нам нужно изменить фамилию пользователя, скажем, с jsmith на jjones, в нашем активном каталоге Win2000 мы наблюдаем немного странное поведение с Sql Server 2008.
Когда jjones обращается к серверу через это приложение, Sql Server все еще думает, что его имя пользователя - jsmith, тогда как все остальное, что они вошли в систему после изменения имени (т.е. их рабочая станция, рассматриваемое приложение), принимает jjones. Это почти как если бы Sql Server кэшировал учетные данные.
Чтобы было понятно, мы меняем только фамилию, а не воссоздаем учетную запись, поэтому SID должен быть таким же (мое предположение). Они также не подключаются к серверу напрямую.
Мои 2 вопроса: если учетные данные кэшируются, где это? И во-вторых, как мы очищаем указанный кеш?
Если мое понимание полностью искажено, чего мне не хватает?
ТИА
Джим Литтл
2 ответа
SQL Server действительно кеширует пользовательские токены. Вы можете заставить их убирать с
DBCC FREESYSTEMCACHE('USERSTORE_TOKENPERM');
Это правильно. При настройке имени входа в SQL Server вы указываете имя пользователя и домен учетной записи. Затем он переходит в Windows, получает SID учетной записи и сохраняет оба в SQL Server. Когда вы меняете имя пользователя в Windows, SID остается прежним. Когда пользователь входит в SQL Server, SID передается с клиентского компьютера на сервер и проверяется по базе данных (вместе с некоторыми токенами аутентификации).
SQL Server использует имя, которое он сохранил в базе данных master, в качестве отображаемого имени.
Чтобы изменить это, вам нужно удалить имя входа с SQL Server и воссоздать его, используя новое имя пользователя.