我有一个SQL 2000服务器有数据库,在数据库对象的用户部分,我有一些NT 4.0组。 这些组前一段时间使用ADMT和SID历史迁移到Active Directory。 原来的源域组已经被删除。 显示的访问是olddomain \ groupname。 我不知道为什么,如果他们是ntfs权限,他们会自动更新目标\组名。
AD域中的用户仍然可以访问数据库,因为它们是已迁移组(Target \ groupname)的成员。 我在想
1)为什么旧的组(source \ groupname)显示为不存在了。 但是访问仍然授予目标组? 2)是否有任何简单的方法来更新组名从源\组名到目标\组名?
谢谢你的帮助。
1)为什么旧的组(source \ groupname)显示为不存在了。 但是访问仍然授予目标组?
如果您要查看分配给相关数据库用户的SQL Serverlogin名,则可能会发现login名具有新的域名。 SQL Server 2000数据库用户有两个主要用途:(1)数据库安全上下文; 和(2)数据库模式名称(在更高版本中,用户和模式是完全独立的实体)。
2)是否有任何简单的方法来更新组名从源\组名到目标\组名?
从技术上讲,虽然SQL Server 2000不提供直接重命名数据库用户的方法,但可以通过执行以下操作来解决此限制:
上述所有内容都可以通过SQL企业pipe理器直接执行,但是如果您需要编写脚本操作,则可以使用以下存储过程和Transact-SQL命令(请参阅SQL联机丛书以获取更多使用信息):
sp_adduser sp_addrolemember GRANT sp_change_users_login sp_dropuser
当您授予对数据库的login访问权限时,SQL将该用户的logging放入数据库的sysusers表中。 此表中的一列是Windowslogin的名称 ,该名称是帐户或组的domain \ user_or_group_name(具体取决于您执行db用户映射的方式)。 您的旧域名可能来自sysusers表中的logging。 访问是基于SID,这就是为什么它仍然工作。
运行这个查询:
select * from [dbname].dbo.sysusers where name='olddomain\groupname'
并看看创build的列。 我猜这是在您迁移域名之前。