如果只有一两个用户,那么最简单的方法是从恢复的数据库中删除数据库用户,使用 SSMS 将数据库用户重新映射到服务器登录。如果服务器登录不存在,则只需创建它,映射用户。
选项 2:如果要迁移大量用户,请使用 sp_help_revlogin。 sp_help_revlogin 是 Microsoft 提供的存储过程,可帮助将登录信息从一台服务器迁移到另一台服务器,包括密码和 SID。这是一篇关于它的好文章 SP_HELP_REVLOGIN :http://www.databasejournal.com/features/mssql/article.php/2228611/Migrating-Logins-from-One-SQL-Server-to-Another.htm
帮助使用它的代码补丁:
在查询分析器中运行以下 T-SQL 查询。这将在结果 pan 中返回数据库中的所有现有用户。
USE YourDB
GO
EXEC sp_change_users_login 'Report'
GO
在查询分析器中运行以下 T-SQL 查询以将登录名与用户名相关联。如果用户不存在,“Auto_Fix”属性将在 SQL Server 实例中创建用户。在以下示例中,“ColdFusion”是用户名,“cf”是密码。自动修复将当前数据库中 sysusers 表中的用户条目链接到 sysxlogins 中的同名登录。
USE YourDB
GO
EXEC sp_change_users_login 'Auto_Fix', 'ColdFusion', NULL, 'cf'
GO
在查询分析器中运行以下 T-SQL 查询以将登录名与用户名相关联。 ‘Update_One’ 链接当前数据库中的指定用户登录。登录必须已经存在。必须指定用户和登录名。密码必须为NULL或未指定
USE YourDB
GO
EXEC sp_change_users_login 'update_one', 'ColdFusion', 'ColdFusion'
GO
2) 如果登录帐户有权限删除其他用户,请在查询分析器中运行以下 T-SQL。这将删除用户。
USE YourDB
GO
EXEC sp_dropuser 'ColdFusion'
GO
在数据库中再次创建相同的用户,没有任何错误。