8 security sql-server sql-server-2000 logins
我们有一个 SQL Server 2000,很快就会迁移到 SQL Server 2005。它创建了多年的 Windows 身份验证帐户,这些帐户不再存在于 Active Directory 中,这会阻止复制数据库向导在新服务器上创建这些帐户。
是否有脚本或某种自动方法可以删除我们的 Active Directory 中不再存在的帐户?
编辑:需要明确的是,需要删除的登录名是在 SQL Server 2000 上,它不支持该DROP LOGIN
命令。
另外,手动删除 SQL Server 2000 中exec sp_droplogin 'loginname'
的登录名将(我认为)完成,但在我的,无法找到登录名,无论我使用“域\登录名”还是“登录名”
只是为了增加混乱,exec sp_revokelogin 'domain\loginname'
似乎确实有效。
编辑2:终于解决了这个问题。许多有问题的登录以编程方式添加到数据库中,虽然它们在用户可以连接的意义上工作,但当 SQL Server 期望没有域时,用户名与 NT 登录名的域前缀登录不匹配,反之亦然反之。
为了解决这个问题,我修改了 sp_droplogin 过程以删除其中一项出错的检查。
我接受我自己的答案,因为它适用于 SQL Server 2000。
小智 6
我最后做的是列出帐户:
exec sp_validatelogins
Run Code Online (Sandbox Code Playgroud)
并运行
exec sp_dropuser loginname
exec sp_droplogin loginname
Run Code Online (Sandbox Code Playgroud)
在结果上。