Gå direkte til indhold

Återkoppla SQL login SIDs efter db restore

lästid I minuter: 1

Det är brådis, dina bakåtsträvande-konsol-baserade utvecklare från sent ’70-tal har precis beställt en restore från produktions databasen till test miljön med hela 500 SQL login och samtliga med olika SID:ar. Hur är det möjligt tänker du som alltid är noga med att scripta ut login så att SID hänger med snygg o prydligt.

Hur som helst, snart release av ny version av vad de nu har knåpat på de senaste månaderna men ändå ska allt vara klart IGÅR. Som DBA vill du givetvis göra så mycket som möjligt med så liten insats som möjligt så att du kan återgå till dina viktiga och betydelsefulla arbetssysslor. Då kan nedan mycket enkla men praktiska script hjälpa till, kör det i den aktuella databasen efter restore så genererars sp_change_users_logins för alla login som är osynkade (dvs SID stämmer inte mellan login – user). Kopiera resultatet o klistra in i query-fönster och kör.

Är du ännu latare kan du lägga till automatiskt exekvering men jag är lagd åt det lite försiktigare hållet så jag vill se vad jag kör. Jag litar dessutom inte helt på datamaskiner.

DECLARE @Fixes TABLE (xcmd varchar(200),xuser varchar(100), xsid nvarchar(150));
INSERT @Fixes (xuser,xsid)
EXEC sp_change_users_login 'Report'
UPDATE @Fixes SET xcmd = 'EXEC sp_change_users_login ' + '''' + 'Update_One' + '''' + ',' + '''' + xuser + '''' + ',' + '''' + xuser + ''''
SELECT xcmd FROM @Fixes

/Fredrik

Ska vi träffas och prata om vad vi konkret kan göra för dig?