【问题标题】:Primavera switching computers master.mdf replace not workingPrimavera 切换计算机 master.mdf 替换不起作用
【发布时间】:2014-04-10 23:47:08
【问题描述】:

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

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

问题是,每次进入primavera都能建立连接,但无法登录,提示用户名密码错误。

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

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

如何为用户(privuser、pubuser)重新创建用户名或密码,即像旧的一样获取新的master.mdf??

【问题讨论】:

    标签: sql sql-server primavera


    【解决方案1】:

    您可以使用带有“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)
    

    【讨论】:

    • 我应该在哪里做这个?
    • 在新服务器上恢复数据库后,例如连接到您的数据库的企业管理器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多