Primavera切换计算机master.mdf替换不起作用

时间:2014-04-10 10:34:14

标签: sql sql-server primavera

我正在使用带有SQL Server数据库的primavera。

我换了电脑,所以我带了primavera_DATprimavera_LOG文件,然后我在另一台电脑上安装了primavera并替换了上面的文件。

问题是,每当我进入primavera时,我都可以建立连接,但无法登录,它告诉我用户名和密码错误。

我做了一些研究,发现用户名和密码存储在master.mdf文件中。

我也有来自其他计算机的master.mdf,但是当我替换它们时,每当我从服务启动SQL Server服务时,我都会收到错误。

如何重新为用户(privuser,pubuser)重新创建用户名或传递,即获取与旧版本一样的新master.mdf

1 个答案:

答案 0 :(得分:0)

您可以使用带有“Auto_fix”的sp_change_users_login从数据库用户重新创建必要的登录,这将记录现有登录并创建新登录(如果它们不存在)。必须提供密码,稍后才能更改密码。

Declare @Membername varchar(255)
Declare @SQl Varchar(8000)


Select @SQL=''
Create Table #tmp
(
DbRole varchar (255),
Membername varchar (255),
MemberSid uniqueIdentifier
)
insert into  #tmp exec sp_helprolemember
Delete from #tmp where Membername in ('sa','dbo','guest')
Delete from #tmp where Membername like ('db_%')


DECLARE P_cursor CURSOR FOR 
SELECT Distinct Membername from #tmp

OPEN P_cursor

FETCH NEXT FROM P_cursor 
INTO @Membername

WHILE @@FETCH_STATUS = 0
BEGIN
   Select @SQL=@SQL + 'exec sp_change_users_login ''Auto_Fix'',  ''' + @Membername +'''  ,   NULL, '+'''B3r12-3x$098f6''' +Char(13)+Char(10) 
   FETCH NEXT FROM P_cursor 
   INTO @Membername
END

CLOSE P_cursor
DEALLOCATE P_cursor
Drop Table #tmp
--Print @SQL
Exec (@SQL)