När man bytte lösenord för SA i en SQL Server 2000 som även kör Reporting Services, slutade plötsligt allt att fungera. Jag insåg snabbt när jag hadde pratat med den DBA som hadde bytt lösen att Reporting Services använde SA för att komma åt sin databas. Men hur skulle man ändra det?

Kom fram till att ‘rsconfig’ var den rätta vägen. Dock fick jag det inte att fungera. Efter att ha läst felmeddelandet i eventloggen ett antal gånger kom jag på att någon hadde fipplat med filen RSReportServer.config manuellt, och lagt in användare och lösen på den användare som skall köra ‘Unattended Reports’ manuellt. Det tyckte inte Reporting Services om eftersom den inte kunde dekryptera det som stog i fälten. Efter att ha plockat bort de texter som stog i ‘UserName’, ‘Password’ och ‘Domain’ i sektionen ‘UnattendedExecutionAccount’ fungerade det. Jag kunde sätta om användare och lösenord.

Sen tänkte jag som så att jag måste väl även använda den användaren mot ‘ReportServerTempDB’……..

Det var då nästa fel dök upp:

The version of the report server database is either in a format that is not
valid, or it cannot be read. The found version is ‘T.0.6.xx’. The expected
version is ‘C.0.6.xx’. To continue, update the version of the report server
database and verify access rights. (rsInvalidReportServerDatabase)

Eller i alla fall insåg jag efter ett tag att det var det som orsakade det. Så efter att ha kört rsconfig på nytt, nu mot ‘ReportServer’, fungerade det igen.

Det fungerade med såväl SQL-användare som Windows-användare. Mycket smidigt tycker jag. Har dock inte testat att köra med ‘impersonate’, alltså att den använder den användare som kör processen. Men jag skulle gissa att om man bara ger den process som kör IIS behörighet mot databasen skulle det fungera.

 UPDATE:

Om man skapar eller lägger till en användare i databasen (ReportServer), kom ihåg att lägga till behörighet till rollen ‘RSExecRole’!

Annonser