我有一个具有数据库的 SQL 2000 服务器,在数据库对象的用户部分下,我有一些 NT 4.0 组。不久前,这些组已使用带有 SID 历史记录的 ADMT 迁移到 Active Directory。原始源域组已被删除。显示的访问权限是 olddomain\groupname。我不知道为什么,如果它们是 ntfs 权限,它们会自动更新到 target\groupname。
AD 域中的用户仍然可以访问数据库,因为他们是迁移组 (Target\groupname) 的成员。我想知道
1) 为什么旧组 (source\groupname) 会因为它不再存在而出现。但是仍然授予目标组访问权限?2) 是否有任何简单的方法可以将组名从源\组名更新为目标\组名?
谢谢你的帮助。
如果您查看分配给相关数据库用户的 SQL Server 登录名,您可能会发现该登录名具有新域名。SQL Server 2000 数据库用户有两个主要目的:(1)数据库安全上下文;(2) 数据库模式名称(在以后的版本中,用户和模式是完全独立的实体)。
从技术上讲,虽然 SQL Server 2000 不提供直接重命名数据库用户的方法,但您可以通过执行以下操作来解决此限制:
上述所有操作都可以通过 SQL 企业管理器直接执行,但如果您需要编写操作脚本,可以使用以下存储过程和 Transact-SQL 命令(有关其他使用信息,请参阅 SQL 联机丛书):
当您授予对数据库的登录访问权限时,SQL 会在数据库的sysusers表中为用户创建一条记录。此表中的一列是name,对于 Windows 登录,它是帐户或组的 domain\user_or_group_name(取决于您如何精确地执行 db 用户映射)。您的旧域名可能来自 sysusers 表中的该记录。访问基于 SID,这就是它仍在工作的原因。
运行此查询:
并查看createdate列。我猜这将在您迁移域之前。