我们公司有两个服务器,一个为测试用途,当从正式环境恢复到测试环境的时候,会出现原来用户无法访问的问题。但当你想加上原来用户的权限,系统会提示已经存在。但你并不没有看见,这个时候应该怎么办呢?
我们的组长提供了以下这个方法,
新建一个存储过程
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO

CREATE PROCEDURE [sz_dvp_restore_login_user]
--INPUT
@DBName nvarchar(50),
@UserName nvarchar(50)
AS
Exec sp_configure \'allow updates\',1
RECONFIGURE WITH OVERRIDE
Declare @ExecStr nvarchar(4000)
Select @ExecStr =\'Declare @b varbinary(85) \' +
\'Use Master \'
+ \'Select @b = sid From syslogins Where Name =\'\'\' + @UserName + \'\'\'\'
+ \' Use \' + @DBName
+ \' Update sysusers Set sid = @b Where name =\'\'\' + @UserName + \'\'\'\'

--Print @ExecStr
Exec(@ExecStr)

Exec sp_configure \'allow updates\',0
RECONFIGURE WITH OVERRIDE
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
执行这个存储过程
sz_dvp_restore_login_user \'dbName\',\'username\'
执行完后,就可以访问了。
我们的组长提供了以下这个方法,
新建一个存储过程
执行这个存储过程
执行完后,就可以访问了。