У меня есть сервер SQL 2000 с базами данных, в пользовательском разделе объекта базы данных у меня есть несколько групп NT 4.0. Некоторое время назад эти группы были перенесены в Active Directory с помощью ADMT с историей SID. С тех пор группы исходного исходного домена были удалены. Показанный доступ - старый домен \ имя группы. Я не знаю, почему, если бы они были разрешениями ntfs, они бы автоматически обновились до target \ groupname.
Пользователи в домене AD по-прежнему имеют доступ к базе данных, так как они являются членами перенесенной группы (Target \ groupname). Я размышлял
1) Почему появляется старая группа (source \ groupname), поскольку она больше не существует. Но доступ целевой группе по-прежнему предоставляется? 2) Есть ли простой способ обновить имя группы с source \ groupname на target \ groupname?
Спасибо за любую помощь.
1) Почему появляется старая группа (source \ groupname), поскольку она больше не существует. Но доступ целевой группе по-прежнему предоставляется?
Если вы посмотрите на имя входа в SQL Server, назначенное соответствующему пользователю базы данных, вы, вероятно, обнаружите, что имя входа имеет новое доменное имя. Пользователи базы данных SQL Server 2000 имеют две основные цели: (1) контекст безопасности базы данных; и (2) имя схемы базы данных (в более поздних версиях пользователи и схемы являются полностью отдельными сущностями).
2) Есть ли простой способ обновить имя группы с source \ groupname на target \ groupname?
С технической точки зрения, хотя SQL Server 2000 не предоставляет возможности напрямую переименовать пользователя базы данных, вы можете обойти это ограничение, выполнив следующие действия:
Все, что описано выше, можно выполнить непосредственно через SQL Enterprise Manager, но если вам нужно создать сценарий операции, вы можете использовать следующие хранимые процедуры и команды Transact-SQL (дополнительную информацию об использовании см. В электронной документации по SQL):
sp_adduser
sp_addrolemember
GRANT
sp_change_users_login
sp_dropuser
SQL помещает запись для пользователя в базу данных sysusers table, когда вы предоставляете доступ для входа в базу данных. Один из столбцов в этой таблице название который для логинов Windows является доменом \ user_or_group_name учетной записи или группы (в зависимости от того, как именно вы выполняете сопоставление пользователей db). Ваше старое доменное имя, вероятно, взято из этой записи в таблице sysusers. Доступ основан на SID, поэтому он все еще работает.
Запустите этот запрос:
select * from [dbname].dbo.sysusers
where name='olddomain\groupname'
и посмотрите на createdate столбец. Я предполагаю, что это произойдет до того, как вы перенесли свой домен.