Изменение учетной записи 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 и воссоздать его, используя новое имя пользователя.

Другие вопросы по тегам