如何从备份数据库还原选定的ASP.NET成员资格用户?

时间:2011-02-09 20:15:32

标签: asp.net asp.net-membership

我的CMS最近出现了一个问题,今天发现我上周创建的所有用户都被删除了。好消息是我有一个DB的备份,它使用标准的ASP.NET Membership表。

有没有办法在不恢复整个数据库的情况下恢复此数据?会员桌是一个迷宫......那里有现有的存储过程或实用程序吗?我不确定哪些表格是必需的,哪些表格不需要。

2 个答案:

答案 0 :(得分:3)

我不知道有任何单一的程序或实用程序。

如果您只使用会员资格,则需要复制:

  • aspnet_Membership
  • aspnet_Users

如果您还使用角色,则需要复制:

  • aspnet_UsersInRoles

如果您还使用个人资料,则需要复制:

  • aspnet_Profile

所以基本上它并没有那么糟糕。你只需要卷起袖子并写入2到4个插入语句。 (至少这是理论)

答案 1 :(得分:2)

Greg正确答案的后续行动......这是我使用的实际SQL脚本:

INSERT INTO aspnet_Users
SELECT * FROM Restored.dbo.aspnet_Users WHERE UserId NOT IN (SELECT UserId FROM aspnet_Users)

INSERT INTO aspnet_Membership
SELECT * FROM Restored.dbo.aspnet_Membership WHERE UserID NOT IN (SELECT UserID FROM aspnet_Membership)

INSERT INTO aspnet_Profile
SELECT * FROM Restored.dbo.aspnet_Profile WHERE UserID NOT IN (SELECT UserID FROM aspnet_Profile)

INSERT INTO aspnet_UsersInRoles
SELECT * FROM Restored.dbo.aspnet_UsersInRoles WHERE UserID NOT IN (SELECT UserID FROM aspnet_UsersInRoles)